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)