【Django】列表页面的搜索功能

目的

页面列表增加多字段搜索显示查询结果

方案

分页显示搜索结果

效果

在这里插入图片描述

实现

列表页面

# list.html
<div class="pull-left"  style="margin-bottom: 10px"><form action="{% url 'api-search' %}" method="get"><div class="col-sm-3"><input class="form-control" name="path" placeholder="path" type="search"></div><div class="col-sm-3" ><input class="form-control" name="reqcode" placeholder="reqcode" type="search"></div><div class="col-sm-3"><input class="form-control" name="project_name" placeholder="project_name" type="search"></div><span class="input-group-btn"><button class="btn btn-primary" type="submit">搜索</button></span></form>
</div>

查询结果分页

# pagintion.html
<div class="container" id="nav" style="text-align:center;"><ul class="pagination" id="page" ><li>共{{ paginator.num_pages }}页/第{{page.number}}页 跳转到第<input id="pageNum" size="1" style="width: 50px" type="number" value="{{ current_page }}"><button class="btn btn-default btn-sm" onclick="getPage();">跳转</button></li>{% if page.has_previous %}<li class="previous"><a href="{{ request.path }}?{{mywhere|join:'&'}}&page={{ page.previous_page_number }}">上一页</a></li>{% else %}<li class="previous disabled"><a href="#">上一页</a></li>{% endif %}{% for num in page_range %}{% if num == current_page %}<li class="active" ><a href="{{ request.path }}?{{mywhere|join:'&'}}&page={{ num }}">{{ num }}</a></li>{% else %}<li class="item"><a href="{{ request.path}}?{{mywhere|join:'&'}}&page={{ num }}">{{ num }}</a></li>{% endif %}{% endfor %}{% if page.has_next %}<li class="next"><a href="{{ request.path}}?{{mywhere|join:'&'}}&page={{ page.next_page_number }}">下一页</a></li>{% endif %}</ul>
</div><script type="text/javascript">function getPage() {var num = $('#pageNum').val();if(num<=0 || num>{{ paginator.num_pages }}){alert('请输入1-{{paginator.num_pages}}');}else{window.location.href='{{ request.path}}?{{mywhere|join:'&'}}&page='+num;}}
</script>

视图

def get_api_list(request,filter:dict=None):p_index = int(request.GET.get('page', 1))  # 当前页码if filter =={}:# 不带搜索条件api_list = API_Manage().get_all_api_list()  # 查询的数据else:# 有搜索条件api_list = API_Manage().get_api_list(path=filter['path'], reqcode=filter['reqcode'], project_name=filter['project_name'])......data = {'page': page, 'paginator': paginator, 'current_page': current_page, 'page_range': page_range}return data

视图:搜索

def api_search(request):dict_key = {}path = request.GET.get('path', None)reqcode = request.GET.get('reqcode', None)project_name = request.GET.get('project_name', None)mywhere = []if path or reqcode or project_name:dict_key['path'] = pathdict_key['reqcode'] = reqcodedict_key['project_name'] = project_namemywhere.append("path=" + path)mywhere.append("reqcode=" + reqcode)mywhere.append("project_name=" + project_name)data = get_api_list(request,dict_key)data.update({'mywhere': mywhere})return render(request, 'api_list.html', data)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18211.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MQ集群搭建

1.⾸先&#xff0c;克隆⼀台IP地址为192.168.230.132的虚拟机&#xff0c;然后参考章节的内 容&#xff0c;在该主机上安装RabbitMQ等环境。再加上之前的虚拟机&#xff0c;这样我们就准备好了两台Linux服 务器。 修改/etc/hosts映射⽂件。 vim /etc/hosts 3.两台Linux主机修改…

微软开源社区上线,能够给微软Win95等“上古系统”打补丁

日前一个基于社区的项目“Windows Update Restored”上线&#xff0c;据了解该项目的目的是为老系统重新提供对Windows Update的支持&#xff0c;可为 Windows 95 / NT 4.0/98(包括 SE)/ME/ 2000 SP2 等“上古时期”的微软操作系统提供升级补丁、修复 bug 或安全漏洞。 据悉&a…

k8s 就绪探针

【k8s 系列】k8s 学习二十&#xff0c;就绪探针 提起探针&#xff0c;不知兄dei 们是否有印象&#xff0c;之前我们分享过存活探针&#xff0c;分享存活探针是如何确保异常容器自动重启来保持应用程序的正常运行&#xff0c;感兴趣的可以查看文章 k8s 系列k8s 学习十七&#x…

masm32 链接问题

当我参考资料学习Windows环境下32位汇编时&#xff0c;编译倒没什么问题&#xff0c;可是链接就不对了。 网上也没找到解决办法&#xff0c;经过后来思考了一下&#xff0c;会不会是link.exe这个玩意有问题&#xff1f;比如有多个&#xff1f; 所以使用link的绝对路径试了一下…

【Hello mysql】 mysql的基本查询(二)

Mysql专栏&#xff1a;Mysql 本篇博客简介&#xff1a;介绍mysql的基本查询 mysql的基本查询&#xff08;二&#xff09; 将筛选出来的数据插入到数据库中&#xff08;insertselect&#xff09;聚合函数统计班级共有多少同学统计班级手机的qq号有多少统计本次考试去重的数学成绩…

【Linux】设置 命令 --help 帮助文件为中文

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; 文章目录 前言设置系统默认语言为中文安装man-…

Redis — 不仅仅是缓存

1*qIy3PMmEWNcD9Czh_21C8g.png Redis是一种快速、开源的内存键值&#xff08;NoSQL&#xff09;数据库&#xff0c;远远超越了缓存的功能。Redis使用RAM进行操作&#xff0c;提供亚毫秒级的响应时间&#xff0c;支持每秒数百万次请求。Redis主要用于缓存&#xff0c;但它也可以…

设置和使用DragGAN:搭建非官方的演示版

ragGAN的官方版还没有发布&#xff0c;但是已经有非官方版的实现了&#xff0c;我们看看如何使用。DragGAN不仅让GAN重新回到竞争轨道上&#xff0c;而且为GAN图像处理开辟了新的可能性。正式版本将于本月发布。但是现在已经可以在一个非官方的演示中试用这个新工具了 DragGAN …

GitKraken 6.5.1免费中文版安装

今天发现SmartGit上传不了代码了, 看了一下过期了, 我不想花钱买, 就找个替代工具, 方便写代码, 方便合并代码, 方便点击提交代码, 免得敲命令浪费时间. 安装 6.5.1 版本 下载版本,已上传到 CSDN :GitKraken 6.5.1免费中文版安装更换快捷方式 C:\Users\kentrl\AppData\Local\…

Linux进程信号(一)

信号产生 1.信号基础知识2.初步认识信号3.signal函数4.技术应用角度的信号5.调用系统函数向进程发信号6.由软件条件产生的信号7.硬件异常产生信号8.core &#x1f31f;&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f;&#x1f31f; &#x1f680;&#x1f…

GPT模型应用丨遥感云大数据在灾害、水体与湿地领域典型案例实践

​ ​ ​ ​ 第一部分 基础实践 一 平台及基础开发平台 GEE平台及典型应用案例介绍&#xff1b; GEE开发环境及常用数据资源介绍&#xff1b; ChatGPT、文心一言等GPT模型介绍 JavaScript基础简介&#xff1b; GEE遥感云重要概念与典型数据分析流程&#xff1b; …

基于单片机的智能鞋柜的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;通过DHT11温湿度采集&#xff1b;通过按键设置逻辑处理&#xff1b;通过LED紫外线消毒&#xff1b;通过继电器控制风扇进行换气除湿&#xff1b;通过继电器控制加热片进行加热&#xff1b;整个电路以5v供电; 电路图 PCB 源代码 #i…