Django中如何使用Q查询和Q()对象,以及F查询和F()对象?

2026-05-22 03:500阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1221个文字,预计阅读时间需要5分钟。

Django中如何使用Q查询和Q()对象,以及F查询和F()对象?

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中如何使用Q查询和Q()对象,以及F查询和F()对象?

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语法来描述操作。

阅读全文