Models的相关知识
1. AutoField:自增整数类型。根据 ID 自增长的 Int字段

2. IntegerField:整数类型

3. BigIntegerField:大整数类型。用于数值较大时,类似于IntegerField

4. SmallIntegerField:小整数类型。数值的取值范围较小,受限于数据库的限制

5. BooleanField:布尔值(true/false)类型。

6. CharField:字符串类型。

7. CommaSeparatedInterField:存放以逗号间隔的整数序列

8. DateField:日期类型。datetime.date 实例

9. DateTimeField:日期类型。datetime.datetime 实例

10. EmailField:字符串类型(正则表达式邮箱)

11. FileField:文件类型。

12. FilePathField:文件类型。某个目录中的所有文件名集合

13. FloatField:浮点数类型

14. ImageField:图片文件类型

15. IPAddressField:IP地址类型。字符串形式(比如 "192.0.2.30")表示

16. GenericIPAddressField:IP地址类型。字符串形式(比如 "192.0.2.30"或者"2a02:42fe::4")表示

17. NullBooleanField:类似于BooleanField。允许值为null

18. PositiveIntegerField:和 IntegerField 相似。字段值必须是非负数

19. PositiveSmallIntegerField:和 PositiveIntegerField 类似,但数值的取值范围较小,受限于数据库设置。

20. SlugField:短标签。主要用于基于其他字段的值来自动填充 Slug 字段

21. TextField:和 Charfield 类似。用于存储文本。

22. TimeField:时间类型。datetime.time 实例

23. URLField:URL类型。

24. UUIDField:唯一标识类型。

25. BinaryField:二进制类型

26. Decimal:十进制小数类型

27. ForeignKey:外键类型

28. ManyToManyField:多对多类型

29. OneToOneField:一对一类型

字段选项

1. null=True   数据库中字段是否可以为空

2. blank=True    django的 Admin 中添加数据时是否可允许空值

3. primary_key = False    主键,对AutoField设置主键后,就会代替原来的自增 id 列

4. auto_now 和 auto_now_add
  auto_now 自动创建---无论添加或修改,都是当前操作的时间
  auto_now_add 自动创建---永远是创建时的时间 5. choices
GENDER_CHOICE = (
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE) 6. max_length 7. default  默认值 8. verbose_name  Admin中字段的显示名称 9. name|db_column  数据库中的字段名称 10. unique=True  不允许重复 11. db_index = True  数据库索引 12. editable=True  在Admin里是否可编辑 13. error_messages=None  错误提示 14. auto_created=False  自动创建 15. help_text  在Admin中提示帮助信息 16. validators=[] 自定义错误验证(列表类型) 17. upload-to 上传到哪个位置,更多与image,filepath配合使用

values() 和、vlue_list() 与 all()


# User为Models类
.all()是取得所有列的数据,可以加.values()取出某一列,每一个元素为一个字典:

obj = model.User.objects.filter(name='alex').values('id','email')
# 相当于SQL语句: select id, email from user where name='alex'
queryset -> python,Django的类
[{'id':1},{'id': 2},] values_list(),获取到的元素为一个个元组,也可以加多个参数来获取多列:

obj = model.User.objects.filter(name='alex').value_list('id','email')
相当于SQL语句: select id, email from user where name='alex'
queryset -> python,Django的类
[(1,'1@qq.com'),(2,'alex@11.com'),]

表基本操作

# 增
models.User.objects.create(id='xx', name='xx') 增加一条数据,可以接受字典类型数据 **kwargs
obj = models.User(id='xx', name='xx')
obj.save() # 查
models.User.objects.get(id=123) # 获取单条数据,不存在则报错(不建议)
models.User.objects.all() # 获取全部数据
models.User.objects.filter(name='seven') # 获取指定条件的数据 # 删
models.User.objects.filter(name='seven').delete() # 删除指定条件的数据 # 改
models.User.objects.filter(name='seven').update(gender='0') # 将指定条件的数据更新,均支持 **kwargs
obj = models.User.objects.get(id=1)
obj.name = 'Delav'

双划线操作

用法: # 字段名称 + __ + 关键字

__exact        精确等于 like 'aaa'
__iexact 精确等于 忽略大小写 ilike 'aaa'
__contains 包含 like '%aaa%'
__icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__in 存在于一个list范围内
__startswith 以...开头
__istartswith 以...开头 忽略大小写
__endswith 以...结尾
__iendswith 以...结尾,忽略大小写
__range 在...范围内
__year 日期字段的年份
__month 日期字段的月份
__day 日期字段的日
__isnull=True/False
# 获取个数
models.User.objects.filter(name='seven').count() # 大于,小于
models.User.objects.filter(id__gt=1) # 获取id大于1的值
models.User.objects.filter(id__lt=10) # 获取id小于10的值
models.User.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 # in
models.User.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
models.User.objects.exclude(id__in=[11, 22, 33]) # not in # contains
models.User.objects.filter(name__contains="ven") # name中包含 ven 的数据
models.User.objects.filter(name__icontains="ven") # icontains大小写不敏感
models.User.objects.exclude(name__icontains="ven") # name中不包含 ven的数据 # range
models.User.objects.filter(id__range=[1, 3]) # 范围between and # 其他类似
startswith,istartswith, endswith, iendswith, # order by
models.User.objects.filter(name='seven').order_by('id') # asc
models.User.objects.filter(name='seven').order_by('-id') # desc # limit 、offset
models.User.objects.all()[10:20] # group by
from django.db.models import Count, Min, Max, Sum
models.User.objects.filter(c1=1).values('id').annotate(c=Count('num'))

  

Django Models相关的更多相关文章

  1. Django—models相关操作

    一.在django后台admin管理页面添加自己增加的表结构 通过终端命令:python3 manage.py makemigrations, python3 manage.py migrate 我们 ...

  2. django models 数据库操作

    django models 数据库操作 创建模型 实例代码如下 from django.db import models class School(models.Model): pass class ...

  3. django models中的class meta

    Django models中的meta选项 通过一个内嵌类 "class Meta" 给你的 model 定义元数据, 类似下面这样: class Foo(models.Model ...

  4. Django models 操作高级补充

    Django models 操作高级补充 字段参数补充: 外键 约束取消 ..... ORM中原生SQL写法: raw connection extra

  5. Django models Form model_form 关系及区别

    Django models Form model_form

  6. Django models .all .values .values_list 几种数据查询结果的对比

    Django models .all .values .values_list 几种数据查询结果的对比

  7. django models数据类型

    Django Models的数据类型 AutoField IntegerField BooleanField true/false CharField maxlength,必填 TextField C ...

  8. django models 类型整理 version:1.8.3

    django models 类型整理 version:1.8.3 网上百度到的最上面的一篇已经是11年的了,django变化很大,现在把1.8.3版的models类型大致整理了下贴出来 普通键部分 F ...

  9. django models的点查询/跨表查询/双下划线查询

    django models 在日常的编程中,我们需要建立数据库模型 而往往会用到表与表之间的关系,这就比单表取数据要复杂一些 在多表之间发生关系的情形下,我们如何利用models提供的API的特性获得 ...

随机推荐

  1. 北京Uber优步司机奖励政策(1月20日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  2. idea前端页面不刷新----springboot

    修改这里就好了

  3. mysql新手进阶01

    生活不止眼前的苟且,还有诗和远方. 请根据给出的数据库表结构来回答相应问题: DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13)); EMP (EM ...

  4. Python 函数参数类型大全(非常全!!!)

    Python 函数参数类型大全(非常全!!!) 1.在python编写程序里面具有函数文档,它的主要作用是为了让别人可以更好的理解你的函数,所以这是一个好习惯,访问函数文档的方式是: MyFuncti ...

  5. TW实习日记:第23天

    主要的项目已经在修改一些细节以提高用户体验的阶段了,所以并不是太忙,主要就是对样式和一些细节修修改改.然后下午帮助同事的新项目做了一个功能点,主要就是调通接口就行,因为参数巨多,所以总要和网端那边的后 ...

  6. yun rpm

    RPM:RedHat Package Manager的简称,是一种数据库记录的方式的管理机制.当需要安装的软件的依赖软件都已经安装,则继续安装,否则不予安装. 特点:1.已经编译并打包完成2.软件的信 ...

  7. Spring 3整合Quartz 2实现定时任务:动态添加任务

    先展示一下后台管理定时任务效果图: 1.新增任务页面: 2.列表页(实现任务的禁用启用) 3.数据库脚本: -- ------------------------------ Table struct ...

  8. Bus of Characters(栈和队列)

    In the Bus of Characters there are nn rows of seat, each having 22 seats. The width of both seats in ...

  9. Thunder团队第六周 - Scrum会议1

    Scrum会议1 小组名称:Thunder 项目名称:i阅app Scrum Master:王航 工作照片: 参会成员: 王航(Master):http://www.cnblogs.com/wangh ...

  10. sql update limit1

    更新限制:为了避免全表更新,错误更新影响太多,加上limit1 多了一层保障.