1.安装完成后,进行测试打开“cmd" ,进入python环境
输入” import django
>>> django.get_vwesion()“查看django的版本
如图:
2.再合适位置创建一个文件夹如:新建文件夹名为‘django-project’,用管理员身份打开
输入”django-admin startproject project“,创建一个文件夹
如图:
3.输入”tree . "和“tree . /F”查看目录层级
如图:
目录说明:
─project
│ manage.py(一个命令行工具,可以使用多种方式对django进行操作)
│
└─project
settings.py(一个中介,它告诉python这个目录应该看作一个python的包)
urls.py(项目配置文件)
wsgi.py(项目的URL声明)
__init__.py(项目与WSGI兼容的web服务器入口)
4.配置数据库
在--init--.py中写入
import pymysql pymysql.install_as_MySQLdb()
在本地mysql数据库中新建一个表:打开cmd
mysql -u root -p 进入数据库
新建数据库create database sunck;
在settings.py中配置数据库
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', 4 'NAME': 'sunck',#数据库名 5 'USER':'root',#用户名 6 'PASSWORD':'123',#数据库密码 7 'HOST': 'localhost',#数据库服务器ip 8 'PORT': '3306',#端口 9 } 10 }
5.创建应用(在一个项目中可以创建多个应用,那个应用进行一种业务处理)
打开黑屏终端进入django project下的project目录下
执行“python manage.py startapp myApp”新建一个名为myApp的应用
如果执行时报错,如图:
解决办法:
找到Python安装路劲下的Python36-32\Lib\site-packages\django\db\backends\mysql\base.py文件
将文件中的如下代码注释
if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
既可成功运行,如图:
项目中如图:
目录说明:admin.py(站点配置)
models.py(模型)
view.py(视图)
激活应用:在seetings.py文件中将myApp加入
1 INSTALLED_APPS = [ 2 'django.contrib.admin', 3 'django.contrib.auth', 4 'django.contrib.contenttypes', 5 'django.contrib.sessions', 6 'django.contrib.messages', 7 'django.contrib.staticfiles', 8 'myApp',#加入myApp 9 ]
6.定义模型(有一个数据表就对应一个模型)
在models.py引入from django.db import models,模型类要继承models.Model类
定义两个表,一个班级一个学生
1 from django.db import models 2 class Grades(models.Model): 3 gname = models.CharField(max_length=20) 4 gdate = models.DateField() 5 ggirlnum = models.IntegerField() 6 gboynum = models.IntegerField() 7 isDelete = models.BooleanField(default=False) 8 9 class Students(models.Model): 10 sname = models.CharField(max_length=20) 11 sgender = models.BooleanField(default=True) 12 sage=models.IntegerField() 13 scontnd=models.CharField(max_length=20) 14 isDelete = models.BooleanField(default=False) 15 sgrade = models.ForeignKey("Grades")#关联外键
说明;不需要定义主键,再定义时自动添加,并且值为自动增加的
7.在数据库中生成数据表
生成迁移文件,在project文件下执行“ python manage.py makemigrations”,在migrations目录下生成一个迁移文件,此时数据库中还没有生成数据表
若出现错误1:
修改代码为“ 1 sgrade = models.ForeignKey("Grades",on_delete=models.CASCADE)
错误2:
解决办法:C:\Users\Administrator\Anaconda3\Lib\site-packages\django\db\backends\mysql\operations.py
把146行改为:query = query.encode(errors='replace')
错误3:
解决办法:在settings.py中添加“‘ 'OPTIONS':{'isolation_level':None} "
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', 4 'NAME': 'sunck',#数据库名 5 'USER':'root',#用户名 6 'PASSWORD':'123',#数据库密码 7 'HOST': 'localhost',#数据库服务器ip 8 'PORT': '3306',#端口 9 'OPTIONS':{'isolation_level':None}#解决问题 10 } 11 }
生成迁移文件,成功如图所示:
执行迁移文件,输入语句 python manage.py migrate 生成数据表
出现错误:
解决办法:Django2.1不再支持MySQL5.5,必须5.6版本以上
二选一
(1 )Django降级到2.0
pip install Django==2.0.0 -i https://pypi.douban.com/simple
(2)MySQL升级
执行迁移文件成功,如图所示: