django常用的模型字段类型和常用的查询
发布日期:2021-07-01 02:13:04 浏览次数:2 分类:技术文章

本文共 1606 字,大约阅读时间需要 5 分钟。

在这里插入图片描述

  1. IntegerField : 整型,映射到数据库中的int类型。
  2. CharField: 字符类型,映射到数据库中的varchar类型,通过max_length指定最大长度。
  3. TextField: 文本类型,映射到数据库中的text类型。
  4. BooleanField: 布尔类型,映射到数据库中的tinyint类型,在使用的时候,传递True/False进去。如果要可以为空,则用NullBooleanField。
  5. DateField: 日期类型,没有时间。映射到数据库中是date类型,
    在使用的时候,可以设置DateField.auto_now每次保存对象时,自动设置该字段为当前时间。设置DateField.auto_now_add当对象第一次被创建时自动设置当前时间。
  6. 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:记录处理搜狗新闻分类
下一篇:django数据库迁移问题

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月20日 15时32分42秒