0


【Django框架】——11 Django模型——02创建模型类

在这里插入图片描述

在这里插入图片描述

一、创建模型类

模型类被创建在"应⽤⽬录

/models.py

"⽂件中。 模型类必须继承⾃

Model

类,位于包

django.db.models

中。 接下来⾸先以"影⽚-⼈物"管理为例进⾏演示。

**1.定义 在

models.py

⽂件中定义模型类。**

from django.db import models

# Create your models here.# 定义模型类classDemo(moldes.Moldes):pass

(1)数据库表名

模型类如果未指明表名,

Django

默认以 ⼩写应⽤名_⼩写模型类名 为数据库表名。

(2)关于主键

django

会为表创建⾃动增⻓的主键列,每个模型只能有⼀个主键列,如果使⽤选项设置某属性为主键列后

django

不会再创建⾃动增⻓的主键列。

默认创建的主键列属性为

id

,可以使⽤

pk

代替,pk全拼为

primary key

(3)属性命名限制

不能是

python

的保留关键字。 不允许使⽤连续的下划线,这是由

django

的查询⽅式决定的。 定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下:

属性 = models.字段类型(选项)

2.字段类型说明

在这里插入图片描述

3.字段选项说明

在这里插入图片描述

null

是数据库范畴的概念,

blank

是表单验证范畴的

4.外键

在设置外键时,需要通过

on_delete

选项指明主表删除数据时,对于外键引⽤表数据如何处理,在

django.db.models

中包含了可选常量:

  • CASCADE级联,删除主表数据时连通⼀起删除外键表中数据
  • PROTECT保护,通过抛出ProtectedError异常,来阻⽌删除主表中被外键应⽤的数据
  • SET_NULL设置为NULL,仅在该字段null=True允许为null时可⽤
  • SET_DEFAULT设置为默认值,仅在该字段设置了默认值时可⽤
  • SET()设置为特定值或者调⽤特定⽅法
  • DO_NOTHING不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError异常

5. 迁移

将模型类同步到数据库中。
(1)⽣成迁移⽂件

python manage.py makemigrations

出现问题1
在这里插入图片描述

在项目(

settings.py

同级)目录中

__init__.py

中添加

import pymysql
pymysql.install_as_MySQLdb()

出现问题2
在这里插入图片描述

Django

使用

MySQL

数据库需要加载

MySQLdb

模块,需要安装

mysqlclient

,若已经安装请略过。 (

Django2.2

版本之前我们安装的是

pymysql

模块,不过现在使用的

mysqlclient

)

pip install mysqlclient

(2)同步到数据库中(执行迁移文件)

python manage.py migrate

6. 添加测试数据

mysq -h host -u username -p
show databases;
use filmdb;

在这里插入图片描述

show tables;

在这里插入图片描述

标签: django python 后端

本文转载自: https://blog.csdn.net/m0_68744965/article/details/127468096
版权归原作者 北极的三哈 所有, 如有侵权,请联系我们删除。

“【Django框架】——11 Django模型——02创建模型类”的评论:

还没有评论