django常用的模型字段类型和常用的查询
发布日期:2021-07-01 02:13:04
浏览次数:2
分类:技术文章
本文共 1606 字,大约阅读时间需要 5 分钟。
- IntegerField : 整型,映射到数据库中的int类型。
- CharField: 字符类型,映射到数据库中的varchar类型,通过max_length指定最大长度。
- TextField: 文本类型,映射到数据库中的text类型。
- BooleanField: 布尔类型,映射到数据库中的tinyint类型,在使用的时候,传递True/False进去。如果要可以为空,则用NullBooleanField。
- DateField: 日期类型,没有时间。映射到数据库中是date类型, 在使用的时候,可以设置DateField.auto_now每次保存对象时,自动设置该字段为当前时间。设置DateField.auto_now_add当对象第一次被创建时自动设置当前时间。
- DateTimeField: 日期时间类型。映射到数据库中的是datetime类型, 在使用的时候,传递datetime.datetime()进去。
例子理解
执行生成映射文件的命令后,查看数据表 Field字段常用的参数- primary_key: 指定是否为主键。
- unique: 指定是否唯一。
- null: 指定是否为空,默认为False。
- blank: 等于True时form表单验证时可以为空,默认为False。
- default: 设置默认值。
- DateField.auto_now: 每次修改都会将当前时间更新进去,只有调用,QuerySet.update方法将不会调用。这个参数只是Date和DateTime以及TimModel.save()方法才会调用e类才有的。
- DateField.auto_now_add: 第一次添加进去,都会将当前时间设置进去。以后修改,不会修改这个值
对于CharField必须设置 max_length
常用的查询方法:
常用的查询条件:- first() 获取第一条 返回的是对象
-
last() 获取最后一条 返回的也是一个对象
思考:排序规则? 默认通过主键。通过_meta 设置 -
get(**kwargs) 根据给定的条件,获取一个对象,如果有多个对象符合,保存
-
all() 获取所有记录 返回的是queryset
-
filter(**kwargs) 根据给定的条件,获取一个过滤后的queryset,多个条件使用and连接。
-
exclude(**kwargs) 跟filter使用方法一致,作用想反,它是排除。
-
多条件的OR连接 用到Q对象,django.db.models.Q
-
values(*fields) 返回一个queryset,返回一个字典列表,而不是数据对象。
-
only(*fiels) 返回querySet ,对象列表,注意only一定包含主键字段
-
defer(*fields) 返回一个QuerySet,作用和only相反
-
order_by(*fields) 根据给定的字段来排序 默认是顺序,字段名前加上 ‘-’代表反序
-
切片 和python的列表切片用法相似,不支持负索引,数据量大时不用步长
*** 切片过后,不再支持,附加过滤条件与排序
-
- 常用查询条件 filter,exclude, get
- exact
- iexact
- contains
- icontains
- in
- range
- gt
- gte
- lt
- lte
- startswith
- istartswith
- endswith
- iendswith
- isnull True False 对应 IS NULL IS NOT NULL
- 聚合 from django.db.models import Count, Avg, Max, Min, Sum 通过queryset的aggregate方法 Student.objects.aggregate(age_avg=Avg(‘age’)) # 计算平均年龄
- count
- 平均值 Avg
转载地址:https://maoli.blog.csdn.net/article/details/89425412 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月20日 15时32分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android 之 ContentProvider 与 ContentResolver
2019-05-01
【接口自动化】
2019-05-01
Spring Boot 安全框架 Shiro 入门
2019-05-01
如何用一句话激怒互联网人?
2019-05-01
用 Python 爬了点你们喜欢的电影
2019-05-01
推荐一位川大零基础转行 Python 的人生勇士
2019-05-01
讲真,做Python一定不要只会一个方向!
2019-05-01
Python解惑之:True与False
2019-05-01
你要的微信小程序终于来了
2019-05-01
有了这些 Chrome 插件,效率提升10倍(建议收藏)
2019-05-01
Python 开发者都会遇到的错误:UnboundLocalError
2019-05-01
只有1%的程序员搞懂过浮点数陷阱
2019-05-01
一名 Google 工程师的大数据处理经验
2019-05-01
命名难,难于上青天
2019-05-01
史上最烂项目:苦撑12年,600多万行代码...
2019-05-01
没钱没公司,怎么做一款付费产品
2019-05-01
查询亿级数据毫秒级返回!Elasticsearch 是如何做到的?
2019-05-01
FastAPI 构建 API 服务,究竟有多快?
2019-05-01
为什么Quora选择用Python语言?
2019-05-01
一劳永逸学编程的方法
2019-05-01