django入门(超详细)
学习目标:django初阶
- 创建项目
- 开发服务器
- 创建投票应用程序
- 写下你的第一个视图
- 数据库设置
- 创建模型
- 激活模型
- 使用 API
- 介绍 Django 管理员
学习内容:
快速安装django:
在此之前,确定已经安装完成python
pip install Django
查看django的版本号
python -m django --version
创建项目
django-admin satrtproject 项目名称
成功创建
mysite/manage.pymysite/__init__.pysettings.pyurls.pywsgi.py
manage.py:一个命令行实用程序,可让您以各种方式与此 Django 项目进行交互。您可以阅读 django-admin 和 manage.pymanage.py中的所有详细信息。
内部mysite/目录是您项目的实际 Python 包。它的名称是 Python 包名称,您需要使用它来导入其中的任何内容(例如mysite.urls)。
mysite/init.py: 一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果您是 Python 初学者,请阅读官方 Python 文档中有关包的更多信息。
mysite/settings.py:此 Django 项目的设置/配置。 Django 设置会告诉你设置是如何工作的。
mysite/urls.py:这个 Django 项目的 URL 声明;由 Django 驱动的站点的“目录”。您可以在URL dispatcher中阅读有关 URL 的更多信息。
mysite/wsgi.py: 为您的项目提供服务的 WSGI 兼容 Web 服务器的入口点。有关更多详细信息,请参阅如何使用 WSGI进行部署。
开发服务器
python manage.py runserver
创建应用程序
python manage.py startapp 应用程序名称
写出第一个试图view
在views.py中编写
from django.http import HttpResponse
def index(request):return httpResponse(“Hello,word”)
这是 Django 中最简单的视图。如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。
为了创建 URLconf,请在 polls 目录里新建一个 urls.py 文件。你的应用目录现在看起来应该是这样:
polls/__init__.pyadmin.pyapps.pymigrations/__init__.pymodels.pytests.pyurls.pyviews.py
在 polls/urls.py 中,输入如下代码:
from django.urls import pathfrom . import views
urlpatterns = [path('',views.idnex,name='index'),#这个name是映射到views.index]
下一步是要在根 URLconf 文件中指定我们创建的 polls.urls 模块。在 mysite/urls.py 文件的 urlpatterns 列表里插入一个 include(), 如下:
from django.contrib import admin
from django.urls import include,path
urlpatterns = [path('polls/',include('polls.urls')),path('admin/',admin.site.urls),
]
执行
python manage.py runserver #验证路由是否修改成功
数据库配置
现在打开 项目/settings.py 这是一个包含Django项目设置的python模块
- 通常sqlite为默认数据库
- 也可以使用自定义数据库(mysql、Oracle…)
sqlite数据库
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': 'mydatabase',}
}
Mysql数据库或者其他数据
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mydatabase','USER': 'mydatabaseuser','PASSWORD': 'mypassword','HOST': '127.0.0.1','PORT': '3306',}
}
创建model.py类
通过定义还需要将app名称放入settings.py中
from django.db import modelsclass Question(models.Model):question_text = models.CharField(max_length=200)pub_date = models.DateTimeField('date published')class Choice(models.Model):question = models.ForeignKey(Question, on_delete=models.CASCADE)choice_text = models.CharField(max_length=200)votes = models.IntegerField(default=0)
在文件mysite/settings.py中子INSTALLED_APPS项式路径后,它看起来像这样:
INSTALLED_APPS = [
‘polls.apps.PollsConfig’,
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘app名称’
]
python manage.py makemigrations polls
API
我们使用这个命令而不是简单的使用“Python” 是因为manage.py会设置DJANGO_SETTINGS_MODULE环境变量,这个路径是 Django 可以根据mysite/settings.py文件来设置 Python 包的导入的。
>>> from polls.models import Choice, Question # 导入相应的数据类#系统中还没有问题。
>>> Question.objects.all() #查找到question中的所有数据,返回一个对象
<QuerySet []>#创建一个新的数据
# Support for time zones is enabled in the default settings file, so
# Django expects a datetime with tzinfo for pub_date. Use timezone.now()
# instead of datetime.datetime.now() and it will do the right thing.
>>> from django.utils import timezone
>>> q = Question(question_text="What's new?", pub_date=timezone.now())# Save the object into the database. You have to call save() explicitly.
>>> q.save()# Now it has an ID.
>>> q.id
1# Access model field values via Python attributes.
>>> q.question_text
"What's new?"
>>> q.pub_date
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>)# Change values by changing the attributes, then calling save().
>>> q.question_text = "What's up?"
>>> q.save()# objects.all() displays all the questions in the database.
>>> Question.objects.all()
<QuerySet [<Question: Question object (1)>]>
在model.py中还存在很多内置的方法
例如:
def unicode(self):
return self.username
class Meta():
db_table=“表名”
django入门(超详细)相关推荐
- NLP之文本分类实战入门超详细教程
目录 前言 一.数据加载 1.加载包 2.读取数据 二.文本处理 1.去除无用字符 2.文本分词 3.去除停用词 4.去除低频词 5.划分训练集和测试集 三.把文本转换成向量的形式 1.把文本转换成t ...
- discuz插件开发新手入门 超详细[转载]
作为一个新手,目前也是刚刚玩转discuz的插件功能,好东西不敢独享,就拿出来大家一起分享入门的过程. 现在网上很多关于discuz的插件教程都是很简单的教程,原因可能是这个东西是商业化的东西,本着分 ...
- Pandas入门超详细教程,看了超简单
本文主要是对pandas新手入门详细介绍,通过本文你将系统性了解pandas为何会有数据分析界"瑞士军刀"的盛誉,下面请看内容如下: 01 关于pandas pandas,pyth ...
- Django入门超easy系列(一)——— 从一个简单的例子入门
从一个简单的例子初识Django 当下最火的语言-Python和当下最火的Web开发框架-Django会擦出怎么样的火花!? 前言 我从去年十月份开始跟公司大佬学习Django,在本系列总结自己学习D ...
- 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析
目录 一.倍增算法 二.倍增算法的应用:求LCA(最近公共祖先)附模板题 三.倍增算法的应用:RMQ 问题(ST表)附模板题 一.倍增算法 要了解倍增之前,强烈建议大家先看一下这位大佬对倍增的解释:[ ...
- selenium入门超详细教程——网页自动化操作
文章目录 简介 一.环境安装 1.selenium安装 2.安装浏览器驱动 2.1 确定浏览器版本 2.2 下载驱动 二.基础用法 1.对页面进行操作 1.1 初始化浏览器对象 1.2 访问页面 1. ...
- 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析
目录 一.倍增算法 二.倍增算法的应用:求LCA(最近公共祖先)附模板题 三.倍增算法的应用:RMQ 问题(ST表)附模板题 一.倍增算法 要了解倍增之前,强烈建议大家先看一下这位大佬对倍增的解释:[ ...
- scrapy爬取豆瓣所有电影信息(新手入门超详细版)
本次小实验目标就是爬取豆瓣所有的电影,我们以豆瓣的分类页(https://movie.douban.com/tag/#/)作为start_urls,首要任务就是分析当前页面是否为动态加载,何为js动态 ...
- SpringMVC V4.1入门超详细解析
文章目录 概述 1.初识SpringMVC 1.1入门程序 1.1.1导入jar包/配置文件 1.1.2创建ItemController 1.2Springmvc架构 1.2.1架构图 1.2.2组件 ...
最新文章
- TensorFlow 输出tensor数据
- 在ASP.NET中获取文件属性
- MAC + Tomcat——部署Web项目时Tomcat启动成功,但部署的Web项目404错误
- python nose测试框架全面介绍十---用例的跳过
- 离线安装minikube—1.10.1
- 解决android中出现的无法加载library的问题
- 关闭word_Word文档如何快速查找?超实用的5个Word技巧教给你
- 法布里斯·贝拉:一个人就是一支队伍
- 遥感原理与应用_遥感原理与应用考试题库及答案
- matlab随机生成点图,matlab随机生成散点图
- 小刘同学的第一百五十五篇日记
- 别了dvorak!-----论qwert、dvorak布局优劣
- MXNet对含隐藏状态的循环神经网络(RNN)的实现
- 黑苹果主机z77技嘉wifi主板,
- m3u8下载合并图片文件(但实际上还是ts文件)
- 【软考 系统架构设计师】计算机组成与体系结构⑥ 流水线
- 不知道如何回复审稿人意见?回复模板来了!
- 关于“Windows Script Host...”错误
- 财务计算机专业英文怎么说,财务与计算机 英文简历模板
- hexo的安装配置以及主题更换保姆级教程
热门文章
- VisualFreeBasic+Miniblink做浏览器实现js内容替换
- 【山东】关于2012年下半年计算机技术与软件专业技术资格(水平)考试有关问题的通知
- 毛绒玩具CPC认证,CPSC认证需要怎样申请
- 【小沐学Python】Python实现在线电子书(MkDocs + readthedocs + github + Markdown)
- vs2010打包发布注意事项
- 都2020年了,在校学生还值得继续转行搞AI吗
- 黑马——最新大数据视频
- 用 Python 进行办公自动化都需要学习什么知识
- 鱼C论坛_VIP四号光盘
- Windows Server HP 服务器磁盘阵列检测