zoukankan      html  css  js  c++  java
  • Django模型层(models.py)之单表增删改查

    添加表记录

    example1:

    # 方式1:实例化
    publish_obj=Publish(name="夕阳出版社",addr="夕阳路")
    publish_obj.save()
    

     example2:

    # 方式2:通过create方法
    Publish.objects.create(name='蓝天出版社',addr='蓝天路79号')
    # create方法的返回值为该插入记录的对象

    example3:

    # 批量导入数据:
    Booklist=[]
    for i in range(50):
        Booklist.append(Book(title=str(i)+"号图书",price=100))
    Book.objects.bulk_create(Booklist)
    

    查询表记录

    all() 查询所有记录
    get(**kwargs) 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
    filter(**kwargs) 返回与所给筛选条件相匹配的QuerySet对象
    exclude(**kwargs) 返回与所给筛选条件不匹配的QuerySet对象
    order_by(*field) 返回一个排序后的QuerySet对象
    reverse() 返回一个反向排序后的QuerySet对象
    count() 返回数据库中匹配查询(QuerySet)的对象数量。
    first() 返回第一条记录
    last() 返回最后一条记录
    exists() 如果QuerySet包含数据,就返回True,否则返回False
    distinct() 从返回结果中剔除重复纪录
    values(*field) 返回一个ValueQuerySet,一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列
    values_list(*field) 它与values()非常相似,它返回的是一个元组序列

    模糊查询

    <字段>__in 返回一个字段值在指定列表中的QuerySet对象
    <字段>__gt 返回一个字段值大于指定值的QuerySet对象
    <字段>__lt 返回一个字段值小于指定值的QuerySet对象
    <字段>__range 返回一个字段值在指定区间内的QuerySet对象
    <字段>__contains 返回一个字段值中含有指定值的QuerySet对象
    <字段>__icontains 同contains,但忽略大小写
    <字段>__startswith 返回一个字段值以指定值开头的QuerySet对象
    <字段>__year

    返回一个year为指定值的QuerySet对象,这里的字段是

    DateFieldDateTimeField,year可以更改为其它时间选项

    删除表记录

     model_obj.delete()

      删除对象,没有返回值

    注意:

      可以删除一个对象,也可以删除多个对象(QuerySet)

      在删除对象时,若有关联的外键,会级联删除

      若不想级联删除,可以在添加外键时,传入参数on_delete = models.SET_NULL

    修改表记录

    model_obj.update(*field)

      返回一个整型数值,表示受影响的记录数。

  • 相关阅读:
    Java_大数加法
    Java_找出最多的10个单词
    过滤文本敏感词
    JDK(Win10)下载与安装
    Agile PLM_统计物料消耗
    Java_扑克牌顺子
    Java8_stream_集合对象属性的合并
    Apache Maven下载与安装
    java泛型 无敌
    Java异常处理 无敌
  • 原文地址:https://www.cnblogs.com/shannen/p/11284427.html
Copyright © 2011-2022 走看看