使用django的objects.filter()方法匹配多个关键字的方法

yipeiwu_com7年前Python基础

介绍:

今天在使用django的时候忽然想用到,如何匹配多个关键字的操作,我们知道django有一个objects.filter()方法,我们可以通过如下一句代码实现匹配数据库中title包含key关键词的文章名称。

table.objects.filter(title__contains=key)

问题:

但是我的需求是我不仅仅只需要匹配出一个关键字的文章而是多个关键字的文章,那么我们该如何使用django的objects.filter()?

table.objects.filter(title__contains=key1)+.objects.filter(title__contains=key2)+....?

解决:

我们都知道在正常的sql语句中如果我们需要匹配多个关键字的title可以这样做

select title from data where title regexp 'key1|key2'
select title from data where title like '%key1%' or like '%key2%'

以上的两种sql语句都是选择出title属性中存在key1和key2的所有文章,那么django是不是也会有一种方法匹配多个关键字呢?当然有就是下面的代码

from django.db.models import Q
table.object.filter(Q(title__startswith='key1') | Q(title__startswith='key2'))

首先导入django的Q方法然后在filter中添加对应的匹配即可

以上这篇使用django的objects.filter()方法匹配多个关键字的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 打印直角三角形,等边三角形,菱形,正方形的代码

三角形 等腰直角三角形1 2.7 #coding:utf-8 rows = int(raw_input('输入列数: ')) i = j = k = 1 #声明变量,i用于控制外层循...

PyQt5显示GIF图片的方法

PyQt5显示GIF图片的方法

使用QMoive方法实现 导入库文件 from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtGui import QMovi...

python根据京东商品url获取产品价格

京东商品详细的请求处理,是先显示html,然后再ajax请求处理显示价格。 1.可以运行js,并解析之后得到的html 2.模拟js请求,得到价格 # -*- coding: utf...

python读取目录下最新的文件夹方法

如下所示: def new_report(test_report): lists = os.listdir(test_report) # 列出目录的下所有文件和文件...

Python轻量级ORM框架Peewee访问sqlite数据库的方法详解

本文实例讲述了Python轻量级ORM框架Peewee访问sqlite数据库的方法。分享给大家供大家参考,具体如下: ORM框架就是 object relation model,对象关系...