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. 2018-2-13-win10-UWP-Markdown-含源代码

    title author date CreateTime categories win10 UWP Markdown 含源代码 lindexi 2018-2-13 17:23:3 +0800 2018 ...

  2. Visio日程安排图

    黄日历: 怎么创建呢? 首先找到日程安排图表 然后找到日历 这就是日历的形状模块 拖动“日”日历形状进行创建 创建好的日历通过右键单击选择"配置"来修改日期 这是周日历 与日日历不 ...

  3. [译文] 为什么你在 C# 里总是应该使用 "var" 关键字

    [译文] Why You Should Always Use the 'var' Keyword in C# (为什么你总是应该在 C# 里使用 "var" 关键字) Using ...

  4. cocos2dx Vec2

    //SE是坐标重叠部分 // returns true if segment A-B intersects with segment C-D. S->E is the overlap part ...

  5. Vue-cli2.0

    本文的学习来自技术胖大神的教程:https://jspang.com/ Vue-cli是vue官方出品的快速构建单页应用的脚手架 开发一个项目,在开始的时候,会构建项目结构.webpack.怎么运行. ...

  6. QTableWiget的简单使用

    QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC.C#中的DataGrid.说到QTableWidget,就必须讲一下它跟QTabelView的区别了.QTableWidge ...

  7. leetcode.310最小高度树

    对于一个具有树特征的无向图,我们可选择任何一个节点作为根.图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树.给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点. ...

  8. 「博客美化」I 页面的CSS

    要有自己的CSS十分重要 可以改别人写的CSS代码 也可以改博客园模板 我这里改的是SympleMomery 别忘了禁用模板 /*......去除广告..........*/ div[id^=&quo ...

  9. java基础之----非空判断

    大家好,第一次写博客,一直想写博客,用于自我总结,也用于帮助新同学成长. 平常我们开发的时候,用到很多非空判断,但是很多同学用到的地方不是很准确,这里,我把自己平时遇到的坑跟大家说说.我废话不多,只想 ...

  10. 27.python中excel处理库openpyxl使用详解

    openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装. 读取Excel文件 需要导入相关函数 ? 1 2 3 from openpyxl ...