zoukankan      html  css  js  c++  java
  • django的ORM

    在项目根目录下运行 python manage.py shell 即可进入django的交互shell界面

    查询

    from my_app.models import MyTestModel

    datas=MyTestModel.objects.filter(name='my_name')

    filter()用于筛选满足条件的子集

    exclude()用于筛选不满足条件的子集

    filter用于筛选多条结果,返回tuple(query set). 可以在结果上继续应用filter

    datas=datas.filter(time='2018-12-21')

    大于gt ,大于等于gte ,小于lt , 小于等于lte,中间用双下画下线连接

    datas=datas.filter(time__gt='2018-12-21').order_by('name','time')

    order_by排序可以是单个字段或多个字段

    limit用python的切片表示,切片是左开右闭,数字表示索引,下标从0开始,不支持负数索引 如:[-1]

    datas=datas[2:5] 相当于limit(2,3)   sql的limit第一个参数是索引,下标从1开始,不包含该索引的记录,第二个参数是记录数,表示的

    含义为,从第二条数据后开始截取3条数据。

    like

    datas=datas.filter(name__contains="key")  相当于 like '%key%'

    django的orm的query也是惰性的,在多次执行filter ,等操作时,它实际上并未进行任何数据库活动,直到返回的数据被用到时才会进行查询。

    >>> q = Entry.objects.filter(headline__startswith="What")
    >>> q = q.filter(pub_date__lte=datetime.date.today())
    >>> q = q.exclude(body_text__icontains="food")
    >>> print(q)

    这个只会在最后print(q)时执行一次查询操作。

    每次执行的返回的queryset都是相互独立的,不受下次filter影响.

    >>> q1 = Entry.objects.filter(headline__startswith="What")
    >>> q2 = q1.exclude(pub_date__gte=datetime.date.today())
    >>> q3 = q1.filter(pub_date__gte=datetime.date.today())

    q3是在q1的基础上对pu_date字段经行了过滤

    filter获得的结果,即使只有一条记录也会返回一个tuple。 如果已知要获取的结果,有且仅有一条,可以使用get()

    datas=datas.get(pk=1)

    但是如果没有匹配的结果就会raise 一个DoesNotExist的异常,如果结果多于1条就会raise一个 MultipleObjectsReturned的异常。

    创建

    from blog.models import Author

    joe=Author.objects.create(name="Joe")

    joe.save()

    对于用户密码的创建要使用create_user()

    from django.contrib.auth.models import User 

    amli=User.objects.create_user(username="Amili",password="someword")

    amli.save()

     

  • 相关阅读:
    异步CTP(Async CTP)为什么那样工作?
    Async Console Programs 异步控制台程序
    Async and Await 异步和等待
    OpenJudge计算概论-自整除数
    OpenJudge计算概论-整数的个数
    OpenJudge计算概论-找和为K的两个元素
    OpenJudge计算概论-找出第k大的数
    OpenJudge计算概论-异常细胞检测
    OpenJudge计算概论-数组逆序重放
    OpenJudge计算概论-数字求和
  • 原文地址:https://www.cnblogs.com/Ting-light/p/10157448.html
Copyright © 2011-2022 走看看