django-数据库相关

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中创建子应用
(错误:子应用之间没有逗号隔开)
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值