我认识的Django之model
ORM简介
orm是 MVC框架一个重要部分,它实现了数据模型和数据库的结藕,即数据模型的设计不需要依赖特定的数据库,通过简单的配置可以轻松的换数据库。(关系数据库)
ORM是对象--关系--映射 的简称。主要任务是
根据对象的类型生成表结构
将对象,列表的操作转化为sql语句
将sql查询的结果转换为对象,列表
Django中的模型包含存储数据的字段和约束,对应数据库的唯一的表
使用MYSQL数据库
迁移是创建数据库的表,而不是数据库
所以,数据库需要我们自己去创建
-------------------------------------
在虚拟环境中创建mysql包
pip install mysql-python
使用创建数据库命令:create databases xxx(数据库名) charset-utf8;
在django中配置数据库databases;
setting---Databases
-------------------------------------
创建项目 python mange.py createproject XXXX(项目名称)
step1:创建虚拟环境
step2:安装django
step3:创建项目
step4:创建应用
step5:在models.py中定义模型类
step6:定义视图
step7:配置url
step8:创建模板
字段选项
通过字段选项,可以实现对字段的约束
在字段对象时同关键字段指定
null :如果为true,Django将空值以NULL存储在数据库,默认值为False
blank:如果为True,则该字段允许为空白,默认值时False
对比:
null是数据库的范畴,blank是表单验证的范畴
db_column:字段的名称,如果未指定,则使用属性的名称(字段属性名字可以和数据库属性名字不一致)
db_index :若值为True,则在表中会为此字段创建索引
default:默认值
primary_key :若为True,则该字段会成为模型的主键字段’
unique:若为True,则这个字段在表中必须有唯一值
元选项
在模型类中定义类Meta,用于设置元信息(在类中定义类)
元信息db_table:定义数据库表名称,推荐使用小写字母,数据表的默认名称
--ordering:默认排序字段,获取对象的列表时使用,介绍属性构成的列表
默认名字:<app的名字>_<模型类的名字>
例子 df_goods_goodsinfo(df_goods是应用名字;goodsinfo是数据库的模型类)
class Meta()"
ordering=["-id"] "-id"代表该字段按倒序排列
在创建表的时候创建排序会增加数据库的开销