models :URL---->http://www.cnblogs.com/wupeiqi/p/6216618.html
null 数据库中字段是否可以为空
do_column 数据库中字段的列名
default 数据库中字段的默认值
primary_key 数据库中字段是否为主键
db_index 数据库中字段是否可以建立索引
unique 数据库中字段是否可以建立唯一索引
unique_for_data 数据库中字段【日期】部分是否可以建立唯一索引
unique_for_month 数据库中字段【月】部分是否可以建立唯一索引
unique_for_year 数据库中字段【年】部分是否可以建立唯一索引
verbose_name Admin中显示的字段名称
blank Admin中是否允许用户输入为空
editable Admin中是否可以编辑
help_test Admin中该字段的提示信息
choices Admin中选择框的内容,用不变动的数据放在内存中从而避免跨表操作
如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1)
error_messages 自定义错误信息{字典类型},定制想要显示的错误信息
字典键:null, blank, invalid, invalid_choice, unique, and unique_for_data
{'null':"不能为空",'invalid':"格式错误"}
#自定义自增列
nid = models.AutoFieid(primary_key=True)
#元信息
class UserInfo(models.Model):
nid = models.AutoFieid(primary_key=True)
username = models.Charfiled(max_length=32)
class Meta:
db_table = "table_name" #数据库中生成的表名称,默认:app名称+下划线+类名
index_together = {("pub_date","deadline"),} #联合索引
unique_together = (("pub_date","deadline"),) #联合唯一索引
vernose_name = "用户名" #Admin 中显示的表名称
#一对多的操作:
to, 要进行关联的表名
to_field=None, 要关联的字段名称,默认是主键ID
on_delete=None 当删除关联表中的数据时
models.CASCADE,删除关联的数据,与之关联的也删除
models.DO_NOTHING,引发错误 integrityError
models.PROTECT,引发错误ProtectedError
models.SET_NULL,删除关联的数据,与之关联的值设置为null(前提FK字段需要被设置允许为null)
models.SET_DEFAULT,删除关联的数据,与之关联的值设置为默认值(前提FK字段需要设置默认值default)
related_name = None, 反向操作时,使用的字段名,用于代替【表名_set】
related_query_name = None,反向操作时,使用的字段名,用于代替【表名】
limt_choice_to = None,在Admin或ModelForm 中显示关联书籍是们提供的条件
db_constraint=True 知否在数据库中创建外键约束
patent_link=False 在Adimn中是否显示关联数据
ORM:
create(),可以接受字典类型数据 **kwargs
delete()
get(),获取单条数据,不存在则报错(不建议)
all(),获取全部数据
filter(),获取指定条件的数据
exclude(),获取除条件之外的数据
update()将指定条件的数据更新,支持字典类型 **kwargs
count()获取匹配中的个数
id__gt=1 获取ID 大于1的值
id__gte=1获取ID 大于等于1的值
(id__lt=10,id__gt=1),获取ID大于1小于10的值
id_in[11,22,33,] 获取ID 等于11,22,33,的值
pub_date__isnull = True
(name__contains="ale") ,模糊匹配
(name__icontains="Ale"),大小写不敏感
(id__range=[1,2]) #范围 between ,end
(name='seven').order_by('id') #asc
(name='seven').order_by('-id') #desc
group by
from django.db.models import Count, Min, Max, Sum
values('id').annotate(c=Count(num))
models.Tb1.objects.all()[10:20] 切片
Entry.objects.get(title__regex=r'^(An?|The) +')
Entry.objects.get(title__iregex=r'^(an?|the) +')
date
Entry.objects.filter(pub_date__date=datetime.date(2005, 1, 1))
Entry.objects.filter(pub_date__date__gt=datetime.date(2005, 1, 1))
year
Entry.objects.filter(pub_date__year=2005)
Entry.objects.filter(pub_date__month__gte=6)
select_related(self,*fields) #性能相关:表之间进行join链表操作,一次性获取关联的数据
prefetch_related(self,*lookups) #性能相关:多表连表操作时速度会慢,使用其执行多次SQL查询在Python代码中实现连表操作
aggregate() 聚合函数,获取字典类型聚合结果
bulk_create() 批量插入
get_field_dispay: 返回choice字段可读的值 (1,'成功') ——return '成功'
get_or_create(self,default) #如果存在,则获取,否则创建 !!!!
update_or_create(self,default) #如果存在,则更新,否则创建 !!!!
first(self)获取第一个
lase(self)获取最后一个
in_bulk(self,id_list=None):
id_list = [11,22,33]
exists(self)