首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django 博客实现简单的全文搜索

服务器接收到用户输入的搜索关键词 “django” 后去数据库查找文章标题和正文中含有该关键词的全部文章。 服务器将查询结果返回给用户。...这样服务器就可以根据 name 的值来取得用户输入的内容。 用户输入了搜索关键词并点击了搜索按钮后,数据就被发送给了 Django 后台服务器。...表单的 action 属性的值为 {% url 'blog:search' %}(虽然我们还没有写这个视图函数),表明用户提交的结果将被发送给 blog 应用下 search 视图函数对应的 URL。...这里 icontains 是查询表达式(Field lookups),我们在之前也使用过其他类似的查询表达式,其用法是在模型需要筛选的属性后面跟上两个下划线。...如果不用 Q 对象,就只能写成 title__icontains=q, body__icontains=q,这就变成标题(title)含有关键词 q 且正文(body)含有关键词 q,就达不到我们想要的目的

71120

简单全文搜索

服务器接收到用户输入的搜索关键词 “django” 后去数据库查找文章标题和正文中含有该关键词的全部文章。 服务器将查询结果返回给用户。...表单的 action 属性的值为 {% url 'blog:search' %}(虽然我们还没有写这个视图函数),表明用户提交的结果将被发送给 blog 应用下 search 视图函数对应的 URL。...这里 icontains 是查询表达式(Field lookups),我们在之前也使用过其他类似的查询表达式,其用法是在模型需要筛选的属性后面跟上两个下划线。...如果不用 Q 对象,就只能写成 title__icontains=q, body__icontains=q,这就变成标题(title)含有关键词 q 且正文(body)含有关键词 q,就达不到我们想要的目的.... {% empty %} 暂时还没有发布的文章!

1.9K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    django 实现简单的搜索功能

    本文将结合 django 模型管理器的 filter 方法和 icontains 查询表达式来实现一个简单的搜索功能。 以博客为例,博客文章通常包含标题和正文两个部分。...整个搜索的过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入的结果到服务器 服务器接收到用户输入的搜索关键词 “django” 后去数据库查找文章标题中含有该关键词的全部文章...用户输入了搜索关键词并点击了搜索按钮后,数据就被发送给了 django 后台服务器。表单的 action 属性的值为 /search/,表明用户提交的结果将被发送给 /search/ 这个 URL。...这里 icontains 是查询表达式(Field lookups),其用法是在模型需要筛选的属性后面跟上两个下划线。...没有搜索到符合条件的文章 {% endfor %} 有了视图函数后记得把视图函数映射到相应了 URL,前面我们表单数据提交的 URL 为 /search/,因此将视图函数 search

    12.4K80

    Python Day16 Django

    和Template 此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template URL控制器(路由层) 简单配置...可选的要传递给视图函数的默认参数(字典形式) 一个可选的name参数 分组 NOTE: 1 一旦匹配成功则不再继续 2 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。...在更高级的用法中,可以使用命名的正则表达式组来捕获URL 中的值并以关键字 参数传递给视图。 在Python 正则表达式中,命名正则表达式组的语法是(?...在URL控制器(project/urls.py)中,给匹配规则起个别名可以解决这个问题,这就叫做反向解析 在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查: 在模板中...**,返回结果有且只有一个, 如果符合筛选条件的对象超过一个或者没有都会抛出错误,返回的是object get() model对象 python get()的结果只能有一个 book = Book.objects.get

    1.9K10

    【测开中台教程-25】首页大搜->资源库搜索增加字段和超链接实现

    本节课主要用来修正首页大搜的最后一个功能:中台内资源库的搜索结果,毕竟资源数据表增加了个字段嘛~ 我们先来看看当前的这个功能后端的样子: 但是现在很明显,我们的资源库表中增加了一个新的字段:fileName...之前的话,我们只搜索了name,所以结果就像这样: 我们资源库的内容举例: 搜索结果是name包含的还好: 但如果是file_name包含的就搜不到了: 所以我们现在修改如下:(同时搜俩个字段任意包含...) from django.db.models import Q zys = list(DB_zyk.objects.filter( Q(name__icontains=self.searchKey)...| Q(fileName__icontains=self.searchKey) ).values()) 然后再修改前端展示: 最后进行测试如下: 然后再看看超链接的功能,考虑到我们现在并没有对单个的资源有单独的详情页...,所以这里的搜索结果的点击事件,就只能是下载了...

    6000

    用django写接口(实战篇)

    ,多条件筛选以及 Token 权限认证 接口数据分页 如果说,后台给你返回的数据很多很多,然后又没有做分页(反正我是碰到过),然后就一直卡在加载界面,心好累。...接口分页效果 我们可以看到接口返回的信息还包含了前一页和后一页的 url 是不是很人性化 接口数据多条件筛选 目前我们的接口要查找特定的信息只能通过 id 来查找,这肯定是不够完善的,这部分将设置接口的多条件查询.....等等 # field_name 为筛选的参数名,需要和你 model 中的一致,lookup_expr 为筛选参数的条件 # 例如 icontains 为 忽略大小写包含,例如 NumberFilter...gte,gt,lte,lt, # year__gt,year__lt 等 title = django_filters.CharFilter('title', lookup_expr='icontains...') # 指定筛选的 model 和筛选的参数,其中筛选的参数在前面设置了筛选条件,则根据筛选条件来执行, # 如果为指定筛选条件,则按照精确查询来执行 class Meta

    2.2K20

    基于 Django 的个人网站(4)

    上回说到,虽然已经基本上把显示的格式改的差不多了,但是界面还是不够美观,同时也没有实现分类页面和检索文章页面,今天我们先来实现分类页面和检索文章的页面。 ?...表单有了,视图有了,最后我们直接配置 URL,在 urlpatterns 列表中添加一项,代码如下: path('search/', SearchView.as_view()) 现在该实现的也基本全都实现了...,接下来我就给出视图、模板和 URL 的完整代码,首先是视图 personal_website\views.py,代码如下: from django.db.models import Q from django.views.generic...=keyword) | Q( abstract__icontains=keyword)) 接下来是 URL 配置的代码,对应文件为 PersonalWebsite\urls.py...看到 URL 最后是 5 就说明没有问题,同时也可以去管理后台看显示的这两篇文章是不是有类别5 这个分类。

    1.1K20

    django-搭建BBS关键点总结

    0826自我总结 django-搭建BBS关键点总结 一.关于开口子,直接输入url访问文件内容 django自带开了个口子是static文件可以直接访问到 手动开口子 urs.py from django.views.static...import serve urlpatterns = [ url(r'^avatar/(?....*),前面的路径等同于后面设置的路径,而下面正则匹配的内容为内容的拼接前面的就是完整的一个路径,这样就可以url直接访问文件夹 二.关于登入验证码中解决并发的问题 解决方法:将code存在session...中 注意点:如果同时在一个浏览器中打开两个相同的网页,他的code以后的那个网站为准,这是session的特性 三.验证码的生成 https://www.cnblogs.com/pythonywy/p/...#加这两句,以后再上传的图片,都放在media文件夹下 MEDIA_URL = "/media/" MEDIA_ROOT = os.path.join(BASE_DIR, "media") # MEDIA_ROOT

    58920

    Django学习-第八讲:django ORM数据库查询,修改等操作

    1.查询操作 查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。...where title like 'hello world'; 注意上面这个sql语句,因为在MySQL中,没有一个叫做ilike的。...而exact翻译成sql语句左右两边是没有百分号的,意味着使用的是精确的查询。 4.icontains 大小写不敏感的匹配查询。...Article.objects.filter(id__in=[1,2,3]) 以上代码在翻译成SQL语句为如下: select *from articles where id in (1,2,3) 当然也可以传递一个...# 查找标题为hello的文章分类 articles = Article.objects.filter(title__icontains="hello") category = Category.objects.filter

    52730

    Django 模型查询2.3

    查询集 字段查询:比较运算符,F对象,Q对象 查询集 在管理器上调用过滤器方法会返回查询集 查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤 惰性执行:创建查询集不会带来任何数据库的访问...offset子句 注意:不支持负数索引 使用下标后返回一个新的查询集,不会立即执行查询 如果获取一个对象,直接使用[0],等同于[0:1].get(),但是如果没有数据,[0]引发IndexError异常...(btitle__endswith='传') isnull、isnotnull:是否为null filter(btitle__isnull=False) 在前面加个i表示不区分大小写,如iexact、icontains...对象 过滤器函数可以传递一个或多个Q对象作为位置参数,如果有多个Q对象,这些参数的逻辑为and 过滤器函数可以混合使用Q对象和关键字参数,所有参数都将and在一起,Q对象必须位于关键字参数的前面 自连接...urlpatterns = [ url(r'^area/$', views.area, name='area') ]

    2.4K20
    领券