一、创建模型类

模型类创建在应用目录/models.py文件中。
模型类必须继承Model类,位于包django.db.models中。
接下来首先以“影片-人物”管理为例进行演示
1 定义 在models.py ⽂件中定义模型类。

# 创建影片模型类
class FilmInfo(models.Model):fid = models.AutoField(primary_key=True, verbose_name='影片编号')fname = models.CharField(max_length=20, verbose_name='影片名称')playcount = models.IntegerField(default=0, verbose_name='播放量')commentcount = models.IntegerField(default=0, verbose_name='评论量')pub_date = models.DateField(null=True, verbose_name='发版时间')is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')class Meta:db_table = 'filminfo'  # 指定数据库表名verbose_name = '影片信息'  # 在admin站点中显示的名称# 优化影片模型类输出def __str__(self):'''定义每个数据对象的显示信息'''return self.fname# 创建人物模型类
class PeopleInfo(models.Model):uid = models.AutoField(primary_key=True, verbose_name='演员编号')uname = models.CharField(max_length=10, verbose_name='演员')gender = models.BooleanField(verbose_name='性别')desc = models.CharField(max_length=200, null=True, verbose_name='描述')# 外键约束:人物属于哪部电影film = models.ForeignKey(FilmInfo, verbose_name='外键id', on_delete=models.CASCADE)is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')class Meta:db_table = 'preopleinfo'  # 数据表名称verbose_name = '演员信息'  # 在admin站点中显示的名称# 优化演员模型类输出def __str__(self):'''定义每个数据对象的显示信息'''return self.uname

1) 数据库表名
模型类如果未指明表名,Django默认以 ⼩写应⽤名_⼩写模型类名 为数据库表名。可通过在内部类中db_table指明数据库表名。

db_table = 'filminfo'  # 指定数据库表名

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

默认创建的主键列属性为id,primary_key=True表示设置主键

3) 属性命名限制
不能是python的保留关键字。 不允许使⽤连续的下划线,这是由django的查询⽅式决定的。 定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下:
属性 = models.字段类型(选项)

二、字段类型说明

三、字段选项说明


null是数据库范畴的概念,blank是表单验证范畴的

四、外键

在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引⽤表数据如何处理,在django.db.models中包含了可选常量:

五、迁移

生成迁移脚本
python manage.py makemigrations
执行迁移脚本
python manage.py migrate

六、添加测试数据

mysql -h '192.168.1.xxx' - u 'zl1' -pshow databases;

use film_db;show tables;


查看数据表

【django】创建模型类相关推荐

  1. Django框架(3.django设计模型类、模型类生成表、ORM框架简介)

    ORM框架简介 O是object,也就类对象的意思, R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思, M是mapping,是映射的意思.在ORM框架中,它帮我们把类和数据表进 ...

  2. django定义模型类-14

    目录 1. 定义 字段类型 约束类型 django的模型类定义在应用下的 models.py 文件中. 模型类继承自 django.db.models 包下的 Model 类. 新创建应用 book ...

  3. 1.odoo13之跟着官网做项目/实例(创建模块、创建模型类、配置角色安全权限文件)

    目录 1.创建模块 2.运行程序,安装上模块 3.创建模型类 4.配置角色安全权限文件 1.创建模块 在主目录下,新建custom的文件夹 进入到pycharm中的命令行,创建estate命令 pyt ...

  4. Django框架(14.Django中模型类的关系,以及模型类关联查询)

    Django中模型类的关系,以及模型类关联查询 1.模型类关系 1.1 一对多关系 1.2多对多关系 1.3 一对一关系 1.4 一对多举例: 1.5 多对多举例: 1.6 一对一举例: 2.关联查询 ...

  5. php yanzhengm,ThinkPHP 在使用M方法(不创建模型类)时实现自动验证与自动填充

    ThinkPHP M方法实现自动验证与自动填充 通常,我们会将自动验证与自动填充规则写入模型类里,然后再用 D 方法实例化模型类来实现对表单的自动验证与自动填充功能.由于 M 方法只是实例化基础模型类 ...

  6. Asp.Net MVC 模型(使用Entity Framework创建模型类)

    Asp.Net MVC 模型(使用Entity Framework创建模型类) 这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework ...

  7. 在Django当中模型类中的choices怎么切换到其他字段

    在Django当中模型类中的choices怎么切换到其他字段 choices的使用 choices在模型类当中是一个非常常见的字段,它可以让我们的字段更好的理解可以进行切换是非常的方便,利用这样的方法 ...

  8. python学习第6天---django框架---模型类及数据库操作

    python学习第6天---django框架---模型类及数据库操作 目录 文章目录 1.字段与选项 2.查询函数 3.查询集 4.模型类之间的关系 4.1.对应关系 4.2.关联查询 5.模型管理器 ...

  9. Django:模型层ORM,创建模型类,字段类型

    官方文档:https://docs.djangoproject.com/zh-hans/3.2/ref/models/fields/ # models.py from django.db import ...

最新文章

  1. 华为、百度、小米踏上造车新征程,软件如何吞噬汽车?
  2. Ubuntu terminal路径太深,名字太长
  3. 基于Win10极简SonarQube C#代码质量分析
  4. 两种不同编码规则的查询
  5. 线性代数学习心得(二)矩阵的逆和矩阵变换
  6. 1那智机器人主电连接
  7. 用打印服务器打印 打印机显示脱机,打印机提示脱机使用,无法打印,该怎么解决?...
  8. 分享一下个人3年的运维经验
  9. SAP-ABAP 读取billing document以及其它订单附件的实例(GOS)
  10. ubuntu远程利用邮箱客户端发送邮件
  11. python分析红楼梦中人物形象_红楼梦中四个人物形象分析
  12. 解决百度地图(new BMap.Autocomplete)影响input赋值的问题
  13. 机器学习-新闻分类案例
  14. rz命令上传文件乱码,无关be参数
  15. 文墨绘学21天习惯养成方法,学好就会优秀
  16. 数据分析三剑客之数据加载(四)
  17. office出现应用程序错误无法正常启动(0xc0000142)
  18. layui框架下拉选择树性图(转载)
  19. Verilog初级教程(19)Verilog中的参数
  20. linux查看开了哪些端口号_Linux 查看服务器开放的端口号

热门文章

  1. sql发送邮件 html,T-SQL;如何在表之前和之后以HTML格式使用sp_send_dbmail
  2. 数据中心基础设施故障处理流程
  3. 怎么样条件需要做屏蔽机房,屏蔽机房建设标准是什么?
  4. mysql 清理host文件_如何删除mysql 数据库里面的host
  5. 电脑显示器变色_两千元档超强电竞小金刚:180hz的泰坦军团T27QR显示器
  6. nbu 恢复oracle数据库,关于使用nbu重定向恢复oracle数据库rman报错
  7. java内存模型 原子性_Java内存模型JMM 高并发原子性可见性有序性简介 多线程中篇(十)...
  8. Py之pandas:利用where、replace等函数对dataframe格式数据按照条件进行数据替换
  9. sklearn之pipeline:pipeline的简介、使用技巧、案例应用之详细攻略
  10. TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比—daidingdaiding