DJANGO使用基本流程
创建项目
- django-admin startproject [项目名]
- 修改settings.py中数据库连接部分,因为默认django使用sqlite驱动,我安装的是mysqlclient驱动,所以:
‘ENGINE’: “DJANGO.DB.BAKENDS.MYSQL”,
‘NAME’: “数据库名”,
‘HOST’: “127.0.0.1”,
‘PORT’: “3306”,
‘USER’: “用户名”,
‘PASSWORD’:”密码”, - 修改settings.py中的ALLOWED_HOST,在列表中添加自己的域名。
- 运行python manage.py runserver [IP:端口](PS:1)默认端口是8000,2)python manage.py runserver 0:9729,0是0.0.0.0的简写)
- 这时通过浏览器可以查看到DJANGO已经可以工作。
创建应用
项目VS应用:应用是一个专门做某件事的网络应用程序。
- python manage.py startapp [应用名] [路径]
该命令会生成一个应用,应用存在指定的路径中,如:
python manage.py startapp poll2 mytest/poll2
python manage.py startapp polls - 进入应用目录编辑views.py文件,代码如下:
from django.http import HttpResponse def index(request): return HttpResponse("hello world!")
如此就编写了一个Django中最简单的视图
- 使用URLconf映映射一个URL到这个视图,在应用的目录里建立一个urls.py文件,输入如下内容:
from django.urls import path from . import views urlpatterns=[path('',views.index,name='index'),]
- 在根目录(项目的根)的URLconf文件中指定刚建立的urls;在根目录的urls.py中的urlpatterns 列表里插入一个include(),如下:
from django.contrib import admin from django.urls import include, path urlpatterns=[path('poll2/',include('mytest.poll2.urls')), path('polls/',include('polls.urls')),]
现在已经把index视图和URLconf连接在一起了。
- 运行服务器测试一下吧!
配置模型
- 数据库的配置,在mytest/settings.py中设置数据库的连接信息。
- 在应用的目录中编辑models.py添加数据库模式
- 在settings.py中添加自己的应用。(添加到:INSTALLED_APPS中,因为PollsConfig类写在polls/apps.py中,所以它的点式路径是:’Polls.apps.PollsConfig’)
- 运行makemigrations,Django会检测模型文件的修改情况(
python manage.py makemigrations
,并把修改的部分存储为一次‘迁移’;迁移:Django对于模型定义的变化的储存形式)。使用python manage.py sqlmigrate polls 0001
可以返回对应的SQL语句。 - 运行migrate,在DB中建立新的模型,
python manage.py migrate
。
迁移是强大的功能,它能让你在开发过程中持续的改变数据库结构,而不需要重新删除和创建表,它专注于使数据库平滑升级而不会丢失数据。
PS:改变模型需要三步:
1)编辑models.py文件
2)python manage.py makemigrations
生成迁移文件
3)python manage.py migrate
应用数据库迁移
Django管理页面
一、建立管理用户
$python manage.py createsuperuser
输入用户名和密码(PS:如果用户已经存会有提示,不用担心覆盖问题),这时启动服务器$python manage.py runserver 0:9729
浏览器中输入网址http://www.5×44.cn:9729/admin/ 后就能看到管理页面的登录。
二、将应用加入到管理页面
(如:polls应用,编辑polls/admin.py)
from django.contrib import admin from .models import Question admin.site.register(Question)
现在注册了Question模型,这时可以在管理页面里看到它,并可以向Question中添加删除数据。