Please enable JavaScript.
Coggle requires JavaScript to display documents.
Model, Model - Coggle Diagram
Model
Model
CRUD
CREATE
save()
创建对象
创建对象,传入属性
使用Model.objects.create()
直接实例化对象
自己封装方法创建
在Manager中封装方法创建
更新:updata
基于查询
save()
删除:delete
基于查询
delete()
查询
查询句柄
objects
Manager实例
操作都封装在这里面
获取查询结果集:QuerySet
exclude
order_by
filter
values
all
切片
实际上相当于limit offset
懒查询
发布者,订阅者模型
广播模型
观察者模型
不支持负数
获取单个对象
last
get
不存在会出现异常:DoesNotExist
存在多于一个会报错:MultipleObjectsReturned
使用这个函数记得捕获异常
first
需要排序:order_by
条件
lte
gte
lt:小于
in
gt:大于
exact
属性_操作符
startwith
endwith
contains
ignore
icontains
istartwith
iexact
iendwiyh
内置函数
count
exists
条件升级
F
获取字段信息
通常用在模型的自我属性计较
支持算术运算
Q
条件封装
支持逻辑运算
或:|
非:~
与:&
隐性属性
属性
显性属性
开发者手动声明的属性
隐性属性
如果开发者主动声明了这些属性,隐性属性自己也就不在生成了
没有声明,父类中也不存在,动态产生的
重要数据处理
is_delete
自定义Manager实现统一封装
重写get_queryset
逻辑字段
Model
Django中
数据操作封装
定义数据表结构
表
属性
模型类
字段
定义模型
继承自Model
class Meta:元信息
db_table:表名
定义字段
字段类型
IntegerField
BooleanField
TextField
DecimalField
精确的数字字段,不会出现1.0000001等情况
CharField
NullBooleanField
ImageField
AutoField
FielField
字段约束
default
unique
uindex
max_length
primary_key
主键约束
db_column
映射到库中
执行迁移:python manage.py migrate
前提
数据库配置完毕
默认配置的SQLite
自主配置的Mysql
用户名
密码
数据库名
主机
引擎
端口
驱动,需要伪装:在
init
.py中安装pymysql,并伪装成MySQLdb:pymysql.install_as_MySQLdb()
生成迁移文件:python manage.py makemigrations
模型
ORM
将业务逻辑和SQL语句进行解耦
核心思想解耦合
Object Relational Mapping
可以理解为翻译器
MTV流程
组成
view
url
model
template
Django中流程
urls->views
views->models
models->views
客户端->urls
views->templates