1、ORM框架:
1、数据库
需要手动创建数据库
2、数据表
与ORM中的模型类一一对应
在子应用的models.py中定义模型
3、字段
与模型类中的属性一一对应
4、记录
与模型类对象一一对应
1、创建表:在models.py 下创建一个类,继承models.Model即可。
2.1数据库相关命令:
a.进入到虚拟环境*
b.python manage.py startapp interfaces
1)生成迁移脚本。0001_initial.py
file:///Users/renxiaoyong/PycharmProjects/dev/projects/migrations/0001_initial.py
python manage.py makemigrations 子应用名称
例:python manage.py makemigrations projects
2)创建表的命令:
python manage.py sqlmigrate 子应用名称 迁移脚本名称
例:python manage.py sqlmigrate projects 0001_initial (没有后缀.py)
得:CREATE TABLE “projects_people” (“id” integer NOT NULL PRIMARY KEY AUTOINCREMENT, “name” varchar(20) NOT NULL, “age” integer NOT NULL);
3)执行迁移脚本
python manage.py migrate projects
python manage.py -h 帮助查询
4)查看数据库:右上角,数据库,选中相关数据库,链接后,点击test,下。
生成的表:子应用名称_类名称
5)**修好model.py文件中的字段
A先执行:python manage.py makemigrations projects
B选择y。
C会生成一个迁移脚本。
D在执行迁移脚本:python manage.py migrate projects
E查看表中的字段,相应字段就会有所修改。
2.2 setting中数据库配置。
3、字段类参数。
3.1在models.py中创建一个类。
class Project(models.Model):
# 一个数据库模型类中只允许定义一个设置了primary_key=True的字段
# CREATE TABLE "project_people" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
# "name" varchar(20) NOT NULL, "age" integer NOT NULL)
# id为主键约束 要想使得其他字段为为主键约束,id就不会成主键
num = models.IntegerField(primary_key=True)
# CharField指定varchar类型,必须设置max-length参数,指定最大长度
# verbose_name和help_text指定的中文描述,在admin后台站点以及接口文档平台中会使用
# unique=True设置唯一约束,默认为False
name = models.CharField(verbose_name='项目名称', help_text='项目名称1', max_length=20,
unique=True)
leader = models.CharField(verbose_name='项目名称', help_text='项目名称1', max_length=10)
# default=True指定当前字段的默认值
is_execute = models.BooleanField(verbose_name='项目是否开展', help_text='项目名称1', default=True)
# null指定当前字段是否允许保存为空
# blank指定前端创建数据时是否允许不输入
desc = models.TextField(verbose_name='项目描述', help_text='项目描述', null=True,
blank=True)
# DateTimeField指定时间的类型
# auto_now_add=True在创建一条数据时,会自动将当前时间赋值给creatr_time,只会修改一次
# auto_now=True,每次更新数据时,会自动将当前时间赋值给update_time,只要修改,就会自动保存
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间', help_text='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间',help_text='更新时间')
3.2修改数据库默认的表名
3.3在数据库中插入数据:
pipenv shell 进入虚拟环境
python manage.py shell
from project.models import Project
one = Project(name=‘测开平台’,leader=‘小小’)
one.save()
刷新,查看右上角数据库,已有一条数据。
3.4 在终端展示数据,写入def方法。需要重新进入虚拟环境
4.创建子应用
4.1创建interfaces
a.进入到虚拟环境*
b.python manage.py startapp interfaces
4.2在settings中创建子应用
(错误:子应用之间没有逗号隔开)