【django】创建模型类
一、创建模型类
模型类创建在应用目录/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】创建模型类相关推荐
- Django框架(3.django设计模型类、模型类生成表、ORM框架简介)
ORM框架简介 O是object,也就类对象的意思, R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思, M是mapping,是映射的意思.在ORM框架中,它帮我们把类和数据表进 ...
- django定义模型类-14
目录 1. 定义 字段类型 约束类型 django的模型类定义在应用下的 models.py 文件中. 模型类继承自 django.db.models 包下的 Model 类. 新创建应用 book ...
- 1.odoo13之跟着官网做项目/实例(创建模块、创建模型类、配置角色安全权限文件)
目录 1.创建模块 2.运行程序,安装上模块 3.创建模型类 4.配置角色安全权限文件 1.创建模块 在主目录下,新建custom的文件夹 进入到pycharm中的命令行,创建estate命令 pyt ...
- Django框架(14.Django中模型类的关系,以及模型类关联查询)
Django中模型类的关系,以及模型类关联查询 1.模型类关系 1.1 一对多关系 1.2多对多关系 1.3 一对一关系 1.4 一对多举例: 1.5 多对多举例: 1.6 一对一举例: 2.关联查询 ...
- php yanzhengm,ThinkPHP 在使用M方法(不创建模型类)时实现自动验证与自动填充
ThinkPHP M方法实现自动验证与自动填充 通常,我们会将自动验证与自动填充规则写入模型类里,然后再用 D 方法实例化模型类来实现对表单的自动验证与自动填充功能.由于 M 方法只是实例化基础模型类 ...
- Asp.Net MVC 模型(使用Entity Framework创建模型类)
Asp.Net MVC 模型(使用Entity Framework创建模型类) 这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework ...
- 在Django当中模型类中的choices怎么切换到其他字段
在Django当中模型类中的choices怎么切换到其他字段 choices的使用 choices在模型类当中是一个非常常见的字段,它可以让我们的字段更好的理解可以进行切换是非常的方便,利用这样的方法 ...
- python学习第6天---django框架---模型类及数据库操作
python学习第6天---django框架---模型类及数据库操作 目录 文章目录 1.字段与选项 2.查询函数 3.查询集 4.模型类之间的关系 4.1.对应关系 4.2.关联查询 5.模型管理器 ...
- Django:模型层ORM,创建模型类,字段类型
官方文档:https://docs.djangoproject.com/zh-hans/3.2/ref/models/fields/ # models.py from django.db import ...
最新文章
- 华为、百度、小米踏上造车新征程,软件如何吞噬汽车?
- Ubuntu terminal路径太深,名字太长
- 基于Win10极简SonarQube C#代码质量分析
- 两种不同编码规则的查询
- 线性代数学习心得(二)矩阵的逆和矩阵变换
- 1那智机器人主电连接
- 用打印服务器打印 打印机显示脱机,打印机提示脱机使用,无法打印,该怎么解决?...
- 分享一下个人3年的运维经验
- SAP-ABAP 读取billing document以及其它订单附件的实例(GOS)
- ubuntu远程利用邮箱客户端发送邮件
- python分析红楼梦中人物形象_红楼梦中四个人物形象分析
- 解决百度地图(new BMap.Autocomplete)影响input赋值的问题
- 机器学习-新闻分类案例
- rz命令上传文件乱码,无关be参数
- 文墨绘学21天习惯养成方法,学好就会优秀
- 数据分析三剑客之数据加载(四)
- office出现应用程序错误无法正常启动(0xc0000142)
- layui框架下拉选择树性图(转载)
- Verilog初级教程(19)Verilog中的参数
- linux查看开了哪些端口号_Linux 查看服务器开放的端口号
热门文章
- sql发送邮件 html,T-SQL;如何在表之前和之后以HTML格式使用sp_send_dbmail
- 数据中心基础设施故障处理流程
- 怎么样条件需要做屏蔽机房,屏蔽机房建设标准是什么?
- mysql 清理host文件_如何删除mysql 数据库里面的host
- 电脑显示器变色_两千元档超强电竞小金刚:180hz的泰坦军团T27QR显示器
- nbu 恢复oracle数据库,关于使用nbu重定向恢复oracle数据库rman报错
- java内存模型 原子性_Java内存模型JMM 高并发原子性可见性有序性简介 多线程中篇(十)...
- Py之pandas:利用where、replace等函数对dataframe格式数据按照条件进行数据替换
- sklearn之pipeline:pipeline的简介、使用技巧、案例应用之详细攻略
- TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比—daidingdaiding