码迷,mamicode.com
首页 > 其他好文 > 详细

Django Model笔记

时间:2015-11-03 17:35:47      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

常用数据类型

BooleanField:布尔类型true/false

NullBooleanField:相当于设置了null=True的BooleanField

IntegerField:整形

CommaSeparatedIntegerField:逗号分隔的整形

CharField:max_length,必填

TextField:None

EmailField:None

GenericIPAddressField:存储IP地址

URLField:verify_exists(True),检查URL可用性

FileField:upload_to 可选

DateTimeField、DateField、TimeField:auto_now(True)可选,每次动作都会更新 / auto_now _add(True),可选,一次产生

ForeignKey:外键, 如果为空设置参数null=True, blank=True

 

自定义方法
class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()
 
    def save(self, *args, **kwargs):
        do_something()
        super(Blog, self).save(*args, **kwargs) # Call the "real" save() method.
        do_something_else()
 
    def get_name(self):
        return self.name
 
查询API
filter(**kwargs) 匹配条件
exclude(**kwargs) 不匹配条件
order_by(*fields) 排序
reverse() 反向排序
distinct() 去除重复记录
values(*fields) 可迭代的字典序列
values_list(*fields) 返回元组序列
all() 查询所有
raw(*args, **kwargs) 执行原生sql
defer(*fields) 延后加载字段
only(*fields) 立即载入字段
using(alias) 使用数据库,多数据库时使用
select_for_update(nowait=False) 行锁定
get(**kwargs) 单个查询
create(**kwargs) 创建对象并保存
get_or_create(defaults=None,**kwargs) 查询不到就创建 defaults={‘desc‘: ‘new‘}
bulk_create(objs, batch_size=None) 批量创建
count() 对象数量
latest(field_name=None) 返回该字段最新的对象
exists() 是否包含数据
update() 更新数据
delete() 删除数据

  

 
Filter查询条件
__exact        精确等于 like ‘aaa‘
__iexact 精确等于 忽略大小写 ilike ‘aaa‘ __contains 包含 like ‘%aaa%‘ __icontains 包含 忽略大小写 ilike ‘%aaa%‘ __gt 大于 __gte 大于等于 __lt 小于 __lte 小于等于 __in 存在于一个list范围内 __startswith 以...开头 __istartswith 以...开头 忽略大小写 __endswith 以...结尾 __iendswith 以...结尾,忽略大小写 __range 在...范围内 __year 日期字段的年份 __month 日期字段的月份 __day 日期字段的日 __isnull=True/False
Q 与 F 查询
from django.db.models import F, Q
 
Q用于复杂的查询
and --> XX.objects.filter(Q(f=1),Q(f=2)) # f == 1 and f == 2
or --> XX.objects.filter(Q(f=1) | Q(f=2)) # f ==1 | f == 2
not --> XX.objects.filter(~Q(f=1),Q(f=2)) # f != 1 and f == 2

  

F 查询条件两个字段相等的值
Server.objects.filter(master_ip=F(‘backup_ip‘))

  

 

Django Model笔记

标签:

原文地址:http://www.cnblogs.com/letong/p/4933722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!