常用数据类型

# https://docs.djangoproject.com/en/1.8/ref/models/fields/#field-types

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

自定义方法

# https://docs.djangoproject.com/en/1.8/topics/db/models/#overriding-predefined-model-methods

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'))

  

 

最新文章

  1. C# js jquery复制textbox内容总结
  2. ajax中返回json数据有"
  3. Understanding G1 GC Logs--转载
  4. 查看C语言的方法名
  5. [Angular 2] More on *ngFor, @ContentChildren & QueryList<>
  6. MFC窗口分割以及各窗口间的通讯
  7. python 大文件以行为单位读取方式比对
  8. linux之cal命令
  9. 深度神经网络(DNN)的正则化
  10. FastDFS教程IV-文件服务器集群搭建
  11. Machine Learning - week 3
  12. JavaScript对象创建的几种方式
  13. /dev、/sys/dev 和/sys/devices 和udev的关系
  14. 【Codeforces 86C】Genetic engineering
  15. 008-React-Native-Android-打包,修改名称图标(转载)
  16. 阅读OReilly.Web.Scraping.with.Python.2015.6笔记---找出网页中所有的href
  17. mysql加密函数
  18. SharePoint 2013 Backup Farm Automatically With a Powershell and Windows Task Schedule
  19. oracle查看处理过程
  20. rails跳过回调的方法

热门文章

  1. BZOJ3990:[SDOI2015]排序——题解
  2. 【树形DP】【P1364】医院放置
  3. 高效率JavaScript代码的编写技巧
  4. BigDATA面试题
  5. 禁用 nouveau 驱动
  6. bzoj 1568 [JSOI2008]Blue Mary开公司 超哥线段树
  7. 使用Android Studio调试UiAutomator过程中遇到的问题
  8. vijos 1037 背包+标记
  9. [洛谷P1527] [国家集训队]矩阵乘法
  10. 51nod 1766 树上的最远点对——线段树