django的如何创建一个小例子-1

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-32Libsite-packagesdjangodbackendsmysqlase.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:UsersAdministratorAnaconda3Libsite-packagesdjangodbackendsmysqloperations.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升级

执行迁移文件成功,如图所示:



原文地址:https://www.cnblogs.com/ZHANG576433951/p/12069795.html