当前位置: 首页> 教育> 幼教 > 上海关键词优化_深圳建站工作室_西地那非片能延时多久每次吃多少_拓客平台有哪些

上海关键词优化_深圳建站工作室_西地那非片能延时多久每次吃多少_拓客平台有哪些

时间:2025/7/11 18:15:32来源:https://blog.csdn.net/u010373106/article/details/146980866 浏览次数:0次
上海关键词优化_深圳建站工作室_西地那非片能延时多久每次吃多少_拓客平台有哪些

1. filter 方法

filter 是 Django ORM 中最常用的查询方法之一。它用来根据给定的条件过滤查询集并返回满足条件的对象。

articles = Article.objects.all()
# 使用 SearchFilter 进行搜索
search_param = request.query_params.get('search', None)
author_id = request.query_params.get('author_id', None)
# 模糊搜索
if search_param:articles = articles.filter(title__icontains=search_param)
#精确搜索id
if author_id:rticles = articles.filter(author_id=author_id)  # 按作者 ID 精确搜索

如果你有多个条件,也可以使用 filter 进行连接:

articles = Article.objects.filter(title__icontains='Django', content__icontains='Python'
)

这会返回标题包含 "Django" 且内容包含 "Python" 的所有文章。

特点:
  • filter 会返回满足所有给定条件的结果。它相当于执行 SQL 查询中的 WHERE 子句。
  • 它会隐式使用 AND 逻辑来连接多个条件。

2. Q 对象

Q 对象是 Django 中用于创建复杂查询条件的工具。它允许你在查询中使用 OR 或 AND 逻辑,甚至可以动态地构建查询条件。Q 对象特别适用于需要使用 OR 逻辑或条件组合的场景。

from django.db.models import Qarticles = Article.objects.filter(Q(title__icontains='Django') | Q(description__icontains='Django') | Q(content__icontains='Django')
)
使用场景:
  • Q 适用于复杂查询,尤其是在需要使用 OR 或动态组合查询条件时。
  • 使用 Q 对象可以灵活地组合不同的查询条件,可以使用 & 表示 AND 逻辑,使用 | 表示 OR 逻辑。
  • filter 用于常见的、简单的过滤条件,适用于大部分常规查询,默认使用 AND 逻辑。
  • Q 对象用于构建更复杂的查询,特别是当你需要灵活的 OR 逻辑或者动态生成查询时。
 articles = Article.objects.all()# 使用 SearchFilter 进行搜索search_param = request.query_params.get('search', None)author_id = request.query_params.get('author_id', None)# # 模糊搜索# if search_param:#     articles = articles.filter(title__icontains=search_param)# #精确搜索id# if author_id:#     articles = articles.filter(author_id=author_id)  # 按作者 ID 精确搜索# 使用 Q 对象进行复杂查询query = Q()if search_param:query &= (Q(title__icontains=search_param) | Q(content__icontains=search_param))if author_id:query &= Q(author_id=author_id)# 应用查询条件articles = articles.filter(query)

关键字:上海关键词优化_深圳建站工作室_西地那非片能延时多久每次吃多少_拓客平台有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: