1、查询

    1.# all获取所有的object,结果QuerySet,列表
print('all'.center(80, '='))
ret = models.Person.objects.all()
print(ret)
2.# filter 删选;结果:QuerySet list;不会报错,结果为空
print('filter'.center(80, '='))
ret = models.Person.objects.filter(id=1)
print(ret)
3.# 对象 若对象不存在,则报错
print("get".center(80, '='))
ret = models.Person.objects.get(id=1)
print(ret)
4.# exclude除了 结果:QuerySet list
print("exclude".center(80, "="))
ret = models.Person.objects.exclude(id=1)
print(ret)
5.# values 查询字段 结果:QuerySet list dict
print("values".center(80, "="))
ret = models.Person.objects.values("name", "age")
print(ret)
6.# values_list 字段 结果:QuerySet list tuple
print("values_list".center(80, "="))
ret = models.Person.objects.values_list("name", "age")
print(ret)
7.# order_by 排序(正序) 结果:QuerySet list
print("order_by".center(80, "="))
ret = models.Person.objects.order_by("age")
print(ret)
8.# reverse 取反,结果:QuerySet list 注意:reverse()前必须先排序
print("reverse".center(80, "="))
ret = models.Person.objects.order_by("age").reverse()
print(ret)
9.# count 计数有几行数据(包含表头)
print("count".center(80, "="))
ret = models.Book.objects.count()
print(ret)
10.# 查看第一个元素
print("first".center(80, "="))
ret = models.Book.objects.first()
print(ret)
11.# 查看最后一个元素
print("last".center(80, "="))
ret = models.Person.objects.last()
print(ret)
12.# 查看是否存在数据行
print("exists".center(80, "="))
ret = models.Person.objects.exists()
print(ret)

QuerySet

1. all()
2. filter()
3. exclude()
4.values() 字典
5.values_list() 元祖
6.order_by()
7.reverse()

对象

1.get()
2.first()
3.laste()

其它

count()

2、神奇的双下方法-->根据字段查询

    1.# lt(小于) gt(大于) lte(小于等于) gte(大于等于)
ret = models.Person.objects.filter(id__gt=2, id__lte=4)
print(ret)
ret = models.Person.objects.filter(id__gte=2, id__lt=4)
print(ret)
2.# in not in
print("in and not in".center(80, "*"))
ret = models.Person.objects.filter(id__in=[1, 3, 4])
print(ret)
ret = models.Person.objects.exclude(id__in=[1, 3])
print(ret)
3.# range 相对于 mysql的between and 是闭区间
print("range".center(80, "*"))
ret = models.Person.objects.filter(id__range=[2, 4])
print(ret)
4.# contains 相当于mysql like '%o%',icontains不区分大小写
print("contains".center(80, "*"))
ret = models.Person.objects.filter(name__contains="o")
print(ret)
ret = models.Person.objects.filter(name__icontains="o")
print(ret)
5.# startswith 以什么开始 ,含有i不区分大小写
ret = models.Person.objects.filter(name__startswith='t')
print(ret)
ret = models.Person.objects.filter(name__istartswith='t')
print(ret)
6.# endswith 以什么结尾,带i的不区分大小写
ret = models.Person.objects.filter(name__endswith='r')
print(ret)
7.# 日期 year month day
ret = models.Person.objects.filter(birthday__day=15)
print(ret)

注意:字段__判断条件

3、在python脚本里调用Django环境

import os

if __name__ == "__main__":
# manage.py 文件里有
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite04.settings')
import django
django.setup()
from app01 import models

ORM基础3 在python脚本里调用Django环境的更多相关文章

  1. $Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境

    在Python脚本中调用Django环境. import osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETTING ...

  2. django系列5.4--ORM中执行原生SQL语句, Python脚本中调用django环境

    ORM执行原生sql语句 在模型查询API不够用的情况下,我们还可以使用原始的SQL语句进行查询. Django 提供两种方法使用原始SQL进行查询:一种是使用raw()方法,进行原始SQL查询并返回 ...

  3. Django框架(八)--单表增删改查,在Python脚本中调用Django环境

    一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...

  4. Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境

    目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...

  5. Python--day69--pythonDjango终端打印SQL语句、在Python脚本中调用Django环境

    Django终端打印SQL语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_lo ...

  6. 在Python脚本中调用Django环境(方便、右键运行,可用于ORM测试)

    随便创建一个py文件即可: import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODUL ...

  7. Django框架----在Python脚本中调用Django环境

    在项目根目录下新建脚本文件script.py import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTI ...

  8. 在Python脚本中调用Django环境

    import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", " ...

  9. django系列5.5--分组查询,聚合查询,F查询,Q查询,脚本中调用django环境

    一.聚合查询 aggregate(*args, **args) 先引入需要的包,再使用聚合查询 #计算所有图书的平均价格 from django.db.models import Avg Book.o ...

随机推荐

  1. ipv6现状,加英文的中括号访问, ipv6测试http://test-ipv6.com

    加英文的中括号就可以,如[2001:4998:c:e33::1004],我发现这是yahoo首页.但并不是所有IPv6网站都可以通过IPv6地址访问,跟IPv4一样,网站服务器端可以只绑定域名,不接受 ...

  2. tet-2

      一.html和css部分 1.如何理解CSS的盒子模型? 标准盒子模型:宽度=内容的宽度(content)+ border + padding 低版本IE盒子模型:宽度=内容宽度(content+ ...

  3. Spring Security学习笔记-自定义Spring Security过滤链

    Spring Security使用一系列过滤器处理用户请求,下面是spring-security.xml配置文件. <?xml version="1.0" encoding= ...

  4. 2018-2-13-git-合并两个仓库

    title author date CreateTime categories git 合并两个仓库 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23:3 ...

  5. Vue仿网易云PC端的网页

    贴个网址:https://github.com/wangjie3186594/-PC- 声明一下:这个网页没做完!没做完!没做完!      本人新人一枚,按照的是我当前的学习进度做的项目,很多效果未 ...

  6. poj2826 An Easy Problem?!(计算几何)

    传送门 •题意 两根木块组成一个槽,给定两个木块的两个端点 雨水竖直下落,问槽里能装多少雨水, •思路 找不能收集到雨水的情况 我们令线段较高的点为s点,较低的点为e点 ①两条木块没有交点 ②平行或重 ...

  7. 很多.net 程序员不知道又非常重要的 .net高级调试技巧.调试别人的dll方法内的变量

    事情是这样的, 最近需要开发Orcale的数据库. 于是使用了EF 加上 Oracle.ManagedDataAccess.Client 这个Oracle.ManagedDataAccess 很好用, ...

  8. boostrap-非常好用但是容易让人忽略的地方【7】:list-unstyled list-inline

    无样式列表 list-unstyled:去掉ul的默认样式 内联列表 list-inline:将ul子元素放置于同一行

  9. 002.MFC_对话框_静态文本_编辑框

    一.建立 名为dialogAndCtl的MFC工程,并添加如图控件 1.将上方static text 控件 Caption属性设置为在文本框中如数文本,可以统计字符 2.edit control控件属 ...

  10. SpringBoot如何优雅的使用RocketMQ

    目录 SpringBoot如何优雅的使用RocketMQ SpringBoot如何优雅的使用RocketMQ MQ,是一种跨进程的通信机制,用于上下游传递消息.在传统的互联网架构中通常使用MQ来对上下 ...