Django中如何使用Q查询和Q()对象,以及F查询和F()对象?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1221个文字,预计阅读时间需要5分钟。
Django 是一个高级的 Python Web 框架,Q 是一个用于异步任务队列的库,F 则通常指的是 Django 的 Forms 功能。以下是对应的简化
Django 与 Q/F 结合使用
Django Q/F
#1 环境
Python3.7.3
Django==2.0.6
#2 开始
#2.1 django F()表达式
每次获取times当前的值,再+1,这样需要将times值取出,存到内存中
obj = models.Test.objects.get(name="cox") obj.times = obj.times + 1 obj.save()
虽然 obj.times = F(“times”) + 1
看起来像常规的Python为实例属性赋值,但实际上它是一个描述数据库上操作的SQL结构
当Django遇到要给F()实例,它会覆盖标准的Python运算符来创建一个封装的SQL表达式;在这个例子中,指示数据库增加由 obj.times 表示的数据库字段。
无论 obj.times 的值是或曾是什么,Python永远不需要知道–完全由数据库来处理。Python通过Django的F()类做的所有事情仅是参考某个字段创建SQL语法来描述操作。
本文共计1221个文字,预计阅读时间需要5分钟。
Django 是一个高级的 Python Web 框架,Q 是一个用于异步任务队列的库,F 则通常指的是 Django 的 Forms 功能。以下是对应的简化
Django 与 Q/F 结合使用
Django Q/F
#1 环境
Python3.7.3
Django==2.0.6
#2 开始
#2.1 django F()表达式
每次获取times当前的值,再+1,这样需要将times值取出,存到内存中
obj = models.Test.objects.get(name="cox") obj.times = obj.times + 1 obj.save()
虽然 obj.times = F(“times”) + 1
看起来像常规的Python为实例属性赋值,但实际上它是一个描述数据库上操作的SQL结构
当Django遇到要给F()实例,它会覆盖标准的Python运算符来创建一个封装的SQL表达式;在这个例子中,指示数据库增加由 obj.times 表示的数据库字段。
无论 obj.times 的值是或曾是什么,Python永远不需要知道–完全由数据库来处理。Python通过Django的F()类做的所有事情仅是参考某个字段创建SQL语法来描述操作。

