larken

勤奋的人生才有价值

导航

Django模型层(1)

https://www.cnblogs.com/yuanchenqi/articles/8933283.html

MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动

更多参数:
(1)null
如果为True,Django 将用NULL 来在数据库中存储空值。 默认值是 False. 
(1)blank 
如果为True,该字段允许不填。默认为False。
要注意,这与 null 不同。null纯粹是数据库范畴的,而 blank 是数据验证范畴的。
如果一个字段的blank=True,表单的验证将允许该字段是空值。如果字段的blank=False,该字段就是必填的。 
(2)default
字段的默认值。可以是一个值或者可调用对象。如果可调用 ,每有新对象被创建它都会被调用。
(3)primary_key 
如果为True,那么这个字段就是模型的主键。如果你没有指定任何一个字段的primary_key=True,
Django 就会自动添加一个IntegerField字段做为主键,所以除非你想覆盖默认的主键行为,
否则没必要设置任何一个字段的primary_key=True。 
(4)unique
如果该值设置为 True, 这个数据字段的值在整张表中必须是唯一的 
(5)choices
由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置了choices ,默认的表单将是一个选择框而不是标准的文本框,<br data-filtered="filtered">而且这个选择框的选项就是choices 中的选项。

查询API
<1> all():                  查询所有结果  
<2> filter(**kwargs):       它包含了与所给筛选条件相匹配的对象  
<3> get(**kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个,                            如果符合筛选条件的对象超过一个或者没有都会抛出错误  
<4> exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象 
<5> order_by(*field):       对查询结果排序  
<6> reverse():              对查询结果反向排序  
<8> count():                返回数据库中匹配查询(QuerySet)的对象数量。  
<9> first():                返回第一条记录  
<10> last():                返回最后一条记录  
<11> exists():              如果QuerySet包含数据,就返回True,否则返回False
<12> values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列                           model的实例化对象,而是一个可迭代的字典序列
<13> values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 
<14> distinct():            从返回结果中剔除重复纪录

 

posted on 2018-09-11 20:19  larken  阅读(120)  评论(0编辑  收藏  举报