美文网首页
Django 基础搜索功能

Django 基础搜索功能

作者: AllenBigBear | 来源:发表于2019-04-16 23:22 被阅读0次

想在主页上添加一个搜索栏,来进行内容的搜索,看了网上一些文章,主要有两种

1:利用Django本身数据模型带的搜索功能,实现比较基础的搜索
2:利用第三方包来实现比较高级的搜索功能

今天先来做一下基础的搜索功能

1: 案例与界面

打个比方,我们一般搜索带文章的网站,都是搜索带“目标内容”的标题或者含有“目标内容”的文章

首先在主页上创建一个搜索表单

    <form role="search" class="col" action="{% url 'mainsite:search' %}" method="get">
        {% csrf_token %}
        <input type="search" placeholder="请输入想要搜索的内容" name="search_info">
        <button class="" type="submit">搜索</button>
    </form>

这里需要注意的唯一一个地方就是,input标签里面的name,这个将会作为request一对key,value一同传入。


效果图

2:views视图函数

接下来需要我们定义怎么去搜索内容

def search(request):
    search_info = request.GET.get('search_info')
    error_msg=""

    if not search_info:
        error_msg = "您需要输入想要搜索的内容"
        return render(request,'search_result.html',locals())
    search_result = Article.objects.filter(article_title__icontains=search_info)
    return render(request,'search_result.html',locals())

主要的逻辑就是,通过request的GET提取出search_info的内容,也就是我们搜索的内容。
如果没有搜索内容只是点击了搜索,会提示错误信息。
反之则看你搜索的内容,有多少文章的标题内含有该内容。

3: 回到前端渲染

然后我们来看一下如何渲染搜索出来的结果

    {% if error_msg %}
        {{ error_msg }}
    {% endif %}

<div class="container">
    {% for sr in search_result %}
        <li>{{sr.article_title}}</li>
    {% empty %}
        <h3>没搜索到</h3>
    {% endfor %}
</div>

如果没有搜索到结果,则会提示"没搜索到"

进行搜索 搜索结果

这样,最简单的搜索功能就完成了。
当然,还可以引入Q查询来进行多条件查询,这个可以看django的文档.

参考资料:https://www.zmrenwu.com/courses/django-blog-tutorial/materials/26/

相关文章

  • Django 基础搜索功能

    想在主页上添加一个搜索栏,来进行内容的搜索,看了网上一些文章,主要有两种 1:利用Django本身数据模型带的搜索...

  • 48、Python快速开发分布式搜索引擎Scrapy精讲—ela

    【百度云搜索,搜各种资料:http://www.81ad.cn】 Django实现搜索功能 1、在Django配置...

  • django 实现搜索功能

    老规矩 自己看 这里的format_alerts_list

  • django+angular分页功能+搜索功能

    此方法是前端分页 主要思路: 把所有数据通过ajax将数据取出,并进行处理和展示. 遇到的问题: angular和...

  • SearchFilter

    SearchFilter `类支持简单的单一查询参数基于搜索和基于 Django管理的搜索功能 。 在使用时,将包...

  • Django打造文件分享系统

    本教程介绍如何使用Django框架快速打造文件分享系统,实现搜索功能,分享功能,用户分享文件查询。通过本课程,我们...

  • Django之旅:2

    包含内容 创建Django应用 基础文件说明 特殊说明 创建Django应用 实现具体功能的模块被称为应用,一个项...

  • django 类视图解析 -FormView

    django 类视图可以帮我们轻松处理特定功能的逻辑,django 基本类视图分为四类: 基础类视图:ViewTe...

  • Django基础(5): Admin

    陆续更新中:Django基础(1): 目录文件简介Django基础(2): 创建应用Django基础(3): 配置...

  • Django基础(4): 建立Templates

    陆续更新中:Django基础(1): 目录文件简介Django基础(2): 创建应用Django基础(3): 配置...

网友评论

      本文标题:Django 基础搜索功能

      本文链接:https://www.haomeiwen.com/subject/eurwwqtx.html