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)

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

  • 相关阅读:
    LOJ.2721.[NOI2018]屠龙勇士(扩展CRT 扩展欧几里得)
    Codeforces.959E.Mahmoud and Ehab and the xor-MST(思路)
    BZOJ.3058.四叶草魔杖(Kruskal 状压DP)
    Codeforces.838E.Convex Countour(区间DP)
    Codeforces.838D.Airplane Arrangements(思路)
    Codeforces.997C.Sky Full of Stars(容斥 计数)
    Codeforces.786B.Legacy(线段树优化建图 最短路Dijkstra)
    BZOJ.3759.Hungergame(博弈论 线性基)
    LOJ.2718.[NOI2018]归程(Kruskal重构树 倍增)
    序列化二叉树
  • 原文地址:https://www.cnblogs.com/shannen/p/11284427.html
Copyright © 2011-2022 走看看