模型Model
Django通过自定义models.py中的类的形式构造数据库,默认生成数据库的表的名称是
<app名>_<模型名>。
一个类实例就是数据表的一行记录。
查看Django执行的SQL语句:python manage.py sqlmigrate <应用名> 0001
(只是查看对照的命令,并不真正执行)
清空数据库:python manage.py flush
模型的元类Meta
元数据是模型中除了字段之外的内容,起辅助作用,比如排序方式、数据库表名等。每个模型都能使用自己的元数据,方法:在模型中添加一个Meta子类。
元类字段(常用)
db_table = ‘xxx’
设置当前模型生成的数据表名,默认为_<小写模型名>。
ordering = [‘<字段名1>’, ‘<字段名2>’, ...]
设置该模型生成QuerySet中的对象的默认排序方式,如:
ordering = [-pub_date’, ‘name’] #先按pub_date字段降序排列,再按name字段升序排列
跟objects.order_by功能类似。
verbose_name = ‘xxx’
设置模型对象的名称,会显示在Admin后台中,默认为小写的模型名。
verbose_name_plural = ‘xxx’
设置模型对象的复数名称,会显示在Admin后台中,默认为小写的模型名加s。
模型包
当models.py中模型很多的时候,可将模型分成几个文件分别存放。
①在应用目录中新建models文件夹,并创建__init__.py文件
②将models.py中的模型类分散到models目录下的各个.py文件中:
<模型1>.py,<模型2>.py,...
③删除models.py,并在__init__.py中导入所有的模型:
from .<模型1> import Model1, Model2
from .<模型2> import Model3, Model4, Model5
...