ORM基础3 在python脚本里调用Django环境
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环境的更多相关文章
- $Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境
在Python脚本中调用Django环境. import osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETTING ...
- django系列5.4--ORM中执行原生SQL语句, Python脚本中调用django环境
ORM执行原生sql语句 在模型查询API不够用的情况下,我们还可以使用原始的SQL语句进行查询. Django 提供两种方法使用原始SQL进行查询:一种是使用raw()方法,进行原始SQL查询并返回 ...
- Django框架(八)--单表增删改查,在Python脚本中调用Django环境
一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...
- Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境
目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...
- Python--day69--pythonDjango终端打印SQL语句、在Python脚本中调用Django环境
Django终端打印SQL语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_lo ...
- 在Python脚本中调用Django环境(方便、右键运行,可用于ORM测试)
随便创建一个py文件即可: import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODUL ...
- Django框架----在Python脚本中调用Django环境
在项目根目录下新建脚本文件script.py import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTI ...
- 在Python脚本中调用Django环境
import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", " ...
- django系列5.5--分组查询,聚合查询,F查询,Q查询,脚本中调用django环境
一.聚合查询 aggregate(*args, **args) 先引入需要的包,再使用聚合查询 #计算所有图书的平均价格 from django.db.models import Avg Book.o ...
随机推荐
- dotnet core 使用 CoreRT 将程序编译为 Native 程序
现在微软有一个开源项目 CoreRT 能通过将托管的 .NET Core 编译为单个无依赖的 Native 程序 这个项目现在还没发布,但是能尝试使用,可以带来很多的性能提升 使用 CoreRT 发布 ...
- H3C查看文件内容
<H3C>more logfile.log 创建一个目录 <H3C>mkdir gaochengwang 重命名目录及文件 <H3C>rename wnt 0904 ...
- 节点列表和HTML集合
getElementsByName()和getElementByTagName()返回的都是NodeList集合. 而document.images和document0.forms的属性为HTMLCo ...
- 前端js页面跳转
window.location.Reload() //刷新当前页面self.location=document.referrer;通过Request Headers中Referer获得上个页面的地址并 ...
- apply call 用法
1.对象转数组 tips 先看怎么用 再研究方法原理 var obj = { 0: 'qian', 1: 'long', 2: 'chu', 3: 'tian', ...
- UTF-8、UTF-16、UTF-32编码的相互转换(不使用现成的函数)
最近在考虑写一个可以跨平台的通用字符串类,首先需要搞定的就是编码转换问题. vs默认保存代码文件,使用的是本地code(中文即GBK,日文即Shift-JIS),也可以使用带BOM的UTF-8.gcc ...
- 理解C/C++的复杂声明
理解C/C++的复杂声明 曾经碰到过让你迷惑不解.类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复C/C ...
- form表单提交方式实现浏览器导出Excel
刚开始使用ajax做Excel导出,发现ajax做不了浏览器导出只能下载到本地,于是用form提交可以提供浏览器下载Excel. 1>用ajax做本地下载: FileOutputStream f ...
- IDEA启动报错Internal error. Please report to http://jb.gg/ide/critical-startup-errors java.lang.NoClassDefFoundError: org/eclipse/xtext/xbase/lib/Exceptions
报错内容: IDEA 启动报错 Internal error. Please report to http://jb.gg/ide/critical-startup-errors 报错图为: 我尝试找 ...
- PHP 经典面试题集
这篇文章介绍的内容是关于PHP 经典面试题集 PHP 经典面试题集,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 结合我自己面试情况,面对的一些php面试题列举出来,基本上结合自己的看 ...