实现功能:用户在搜索框输入关键词,过滤出带有关键词的文章。

新闻模型如下:

models.py

class Notices(models.Model):Category_List = (('新闻动态', '新闻动态'), ('通知公告', '通知公告'),)NoticeID=models.AutoField(primary_key=True)NoticeTitle=models.CharField('新闻标题',max_length=50)NoticeContent = UEditorField(u'内容    ', width=800, height=300, toolbars="full", imagePath="images/",filePath="files/",default='')NoticeData=models.DateField('时间',auto_now_add=True)NoticeDesc=models.CharField('新闻描述',max_length=50,blank=True)  #新闻描述NoticeUser=models.CharField('发布人',max_length=50,blank=True)#发布人#NoticeCategory = models.CharField('新闻分类',default='', max_length=10)  # 新闻分类NoticeCategory=models.CharField('新闻分类',choices=Category_List,default=1,max_length=10) #新闻分类class Meta:#结果集按照何种方式排序#ordering=['-time_added']#在数据库中的表名db_table = "std_web_notices"#对象的名称verbose_name = "新闻"#对象复数形式的名称verbose_name_plural = verbose_namedef __unicode__(self):return self.title

 在前端html表单进行修改:

<form role="search" method="get" id="searchform" action="{% url 'std_web:xwdt_search' %}">{% csrf_token %}          <input type="search" name="q" placeholder="标题过滤" required>        <button type="submit">搜索</button>

 {%csrf_token%}是django用来防御跨站请求伪造的机制。

从前端代码看到使用get方法,当用户提交搜索后,通过action找到相应的url进行跳转。

定义视图函数

views.py

def xwdt_search(request):q=request.GET.get('q')error_msg= ''if not q:error_msg='请输入关键词'return render(request,'jsyw/xwdt.html',{'error_msg':error_msg})post_list=Notices.objects.filter(NoticeTitle__icontains=q)return render(request, 'jsyw/xwdt.html', {'error_msg': error_msg,'post_list':post_list})

q为查询框的name

这里的查询条件NoticeTitle__icontains=q是指NoticeTitle包含q

如果要实现两个条件查询语句可以这样写

post_list=Notices.objects.filter(NoticeCategory='新闻动态',NoticeTitle__icontains=q)

  

绑定URL

url(r'^xwdt_search/',views.xwdt_search,name='xwdt_search'),

转载于:https://www.cnblogs.com/1998lu/p/9979290.html

django实现搜索功能相关推荐

  1. Django简单全文搜索(Django实现搜索功能)

    Django简单全文搜索(Django实现搜索功能) 本文转载自简单全文搜索 搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用Django Model 层提供的一些内置方法来完成.现在我们 ...

  2. Django开发个人博客网站——19、通过Django Haystack实现搜索功能(上)

    该博客最开始采用的模板是并不包括搜索功能的,在主页只有主页.归档和分类三个部分.最后博主自己添加了搜索框,不过其实不太想让大家使用这个功能,因此将搜索框隐藏了,只有再点击搜索时,才会显现出来.但是这个 ...

  3. django 实现简单的搜索功能

    django 实现简单的搜索功能 1 年,1 月前 4849 字 13259 阅读 7 评论 搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用 django model 层提供的一些内置方 ...

  4. Django博客搭建-新闻模块6-新闻搜索功能(Django+Haystack+elasticsearch)

    Blog项目--新闻模块 文章目录 Blog项目--新闻模块 一.需求分析 二.搜索引擎原理 三.Elasticsearch 特点 四.使用docker安装elasticsearch 五.后端代码实现 ...

  5. 使用haystack实现django全文检索搜索引擎功能

    前言 django是python语言的一个web框架,功能强大.配合一些插件可为web网站很方便地添加搜索功能. 搜索引擎使用whoosh,是一个纯python实现的全文搜索引擎,小巧简单. 中文搜索 ...

  6. python discuz搜索api_Django用内置方法实现简单搜索功能的方法

    Model中分别提供了filter方法和icontains方法实现简单的搜索功能. html页面中实现搜索框 模板api_test_manage.html中增加以下内容 {% csrf_token % ...

  7. 【ElasticSearch和whoosh实现项目中搜索功能】

    文章目录 说明: 一.单表搜索 二,全局搜索 方式一:haystack+whoosh+Jieba 方式二:haystack+ES 总结: 说明: 我们的项目中经常会遇到搜索的功能,最近也写过搜索的功能 ...

  8. css3搜索框呼出键盘,移动端 input 输入框实现自带键盘“搜索“功能并修改X

    主要利用html5的,input[type=search]属性来实现,此时input和type=text外观和功能没啥区别: html代码入下: 但要实现点击键盘右下角搜索,来发送请求,js代码如下( ...

  9. 12搜索功能实现+docker

    文章目录 docker 简介 基本概念 Image(镜像) Container (容器) Repository (仓库) 安装 docker 新闻搜索功能实现 需求分析 搜索引擎原理 elastics ...

最新文章

  1. linux 找不到动态链接库 .so文件的解决方法
  2. 【聊透SpringMVC】自学java和三大框架要多久
  3. 【深度学习入门到精通系列】医疗影像分割
  4. BenchmarkDotNet的使用
  5. Jenkins+Jmeter持续集成笔记(四:定时任务和邮件通知)
  6. [Trie] Luogu P2580 于是他错误的点名开始了
  7. AngularJS学习!
  8. 想离职,是现在就提?还是等到年后?
  9. 一只青蛙跳向三个台阶_青蛙跳台阶问题的三种解法
  10. ++递归 字符串全排列_剑指 Offer 38. 字符串的排列
  11. Understand Rails Authenticity Token
  12. java 分页的总页数算法
  13. springcloud配置nacos,实现不同的环境使用不同的配置文件,不同的开发人员使用不同的配置文件
  14. kibana报表展示
  15. feil_uVission4左侧工目录消失
  16. FPGA 11 基础 8421BCD码
  17. windows日志查看与清理
  18. Office365软件安装包+安装教程
  19. 写个人简历的时候字体不完整?一个小技巧搞定!
  20. matlab曲线加颜色,matlab学习之绘制参数曲线,添加辅助线以及颜色设置

热门文章

  1. 新浪2017校园招聘---C++后台研发
  2. Linux入门之磁盘管理(3)文件系统挂载
  3. 用Python写一个简单的监控系统
  4. C#项目学习 心得笔记本
  5. [PHP] 网络与协议
  6. 优美的函数式语言Haskell
  7. python怎样压缩和解压缩ZIP文件
  8. 蓝桥杯 ALGO-37 算法训练 Hankson的趣味题
  9. [Java] 蓝桥杯BASIC-26 基础练习 报时助手
  10. 【C++】判断两个vector是否相等~直接用“==”呀~