Model
- 开发的第一步, 数据模型的构建
ORM
Object relational mapping 对象关系映射
解耦: 数据库 - 业务逻辑
Model --> ORM(->不同的sql) --> Databade
Django定义模型
-
数据库的数据类型
-
django默认生成自增的主键
-
命名: 不允许使用 连续的下划线
-
逻辑删除, 不做物理删除
-
字段类型
- AutoField 根据实际id 自动增长的IntegerField
- CharField 字符串Text
- TextField 大文本字段
- IntegerField 整数
- DecimalField 高精度浮点型
- FloatField
- BooleanField True Flase
- NullBooleanField True Flase Null
- DateField 日期
- TimeField 时间
- DateTimeField 日期时间
- FileField 文件上传字段(文件路径)
- ImageField 图片 继承FileField, 增加校验:是否是图片
-
字段选项(字段属性)
- null 允许为空值 默认 F
- blank 允许为空 默认 F
- db_column 字段名
- db_index 是否建立索引
- default 默认值
- primary_key 主键
- unique 是否唯一
-
关系
- 分类
- ForeignKey
- ManyToManyField
- OneToOneField
- 分类
-
元信息
- 类中类
使用
from django.db import models
# Create your models here.
class Person(models.Model):
p_name = models.CharField(max_length=16, unique=True,db_column='name')
p_age = models.IntegerField(default=0,db_column='age')
p_sex = models.NullBooleanField(default=None,db_column='sex')
class Meta:
db_table = 'Django_People'
模型成员objects
-
- get
- all
-
- filter :返回符合筛选条件的数据集
- exclude :返回符合筛选条件的数据集
- person.objects.filter(xx).filter(xx).exclude(xxx)