【Django+Element UI】使用一个接口文件,搞定分页获取数据,模糊查询后分页获取数据
1:序列化获取数据的接口设计
1:分页获取序列化数据 2:是个能传参数的接口
class Society(APIView): def post(self, request):
keywords = str(request.data.get("keywords"))
data = {}
try:
s_data = models.Society.objects.filter(name__contains=keywords).order_by('id') # 模糊查询 pg = PageNumberPagination()
pg.max_page_size = 200
pg.page_size_query_param = "size"
pager_roles = pg.paginate_queryset(queryset=s_data, request=request, view=self)
ser = PagerSerialiser(instance=pager_roles, many=True)
data["code"] = 200
data["count"] = len(s_data) # 获取总数量
data["data"] = ser.data
return Response(data)
except Exception as e:
data["code"] = 444
data["message"] = "请求异常"
return JsonResponse(data)
2:前端代码的设计
1:创建2个关键词keywords_raw,keywords,当没有使用搜索功能时,我们传上去的是keywords,它是空值,所以接口会返回给我们所有的数据,分页请求的keywords也是空值,所以这个时候的请求数据是所有的 2:当我们在输入框上输入了关键词keywords_raw,点击时,这个时候将keywords_raw的值赋值给keywords,这样子去请求就可以做到搜索关键词后的分页点击是属于搜索关键词的数据 代码: HTML:
<input type="text" class="form-control" placeholder="输入关键词查找社团" v-model="keywords_raw"> <button @click="search"> 搜索</button> JS: data:{
keywords_raw: "",
keywords: "",
} // 钩子函数渲染数据
created() {
// 数据渲染
axios.post('/society/get/?page=1&size=6', {
keywords: this.keywords # 上传的参数是keywords 这个时候还是空值,请求的数据是所有的
}).then(response => {
this.totals = parseInt(response.data.count)
response.data.data.some((item, i) => {
this.society_data.unshift({
societHead: item.head,
societUser: item.user,
societName: item.name,
societMember: item.member,
societTime: item.time.substring(0, 10),
pk: item.id,
})
})
}).catch(error => {
alert("请重新登录")
window.location.href = '/login/'
})
} // 搜索:
// search
search() {
if ( this.keywords_raw == "") {
alert("输入框不能为空")
} else {
this.society_data =[]
// 请求的时候赋值给keywords
this.keywords =this.keyword_raw # 直接同步两个参数
axios.post('/society/get/?page=1&size=6', {
keywords: this.keywords_raw
}).then(response => {
this.totals = parseInt(response.data.count)
response.data.data.some((item, i) => {
this.society_data.unshift({
societHead: item.head,
societUser: item.user,
societName: item.name,
societMember: item.member,
societTime: item.time.substring(0, 10),
pk: item.id, })
})
}).catch(error => {
console.log(error) })
}
} // 分页
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) { this.society_data = [],
axios.post('/society/get/?page=' + val + '&size=6', {
keywords: this.keywords # 上传的是参数是关键词
}).then(response => {
this.totals = parseInt(response.data.count)
response.data.data.some((item, i) => {
this.society_data.unshift({
societHead: item.head,
societUser: item.user,
societName: item.name,
societMember: item.member,
societTime: item.time.substring(0, 10),
pk: item.id, })
})
}).catch(error => {
console.log(error) })
},
3:效果图




【Django+Element UI】使用一个接口文件,搞定分页获取数据,模糊查询后分页获取数据的更多相关文章
- 一个PHP文件搞定微信H5支付
/ 更新于 2018-07-02 / 8 条评论 过年期间也坚持要撸码啊接着给博客除草,在这个小除夕是情人节的一天,祝大家新年快乐,情人节能够顺利脱单~~~ 回归正题,这篇文章介绍一下微信H5支付, ...
- 转:C4项目中验证用户登录一个特性就搞定
转:C4项目中验证用户登录一个特性就搞定 在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用 ...
- 企业sudo权限规划详解 (实测一个堆命令搞定)
简述问题: 随着公司的服务器越来越多,人员流动性也开始与日俱增,以往管理服务器的陈旧思想应当摒弃,公司需要有 更好更完善的权限体系,经过多轮沟通和协商,公司一致决定重新整理规划权限体系 ...
- 编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内
查看本章节 查看作业目录 需求说明: 在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字"[ 来自新华社 ]",保存到一个新的 txt 文件内 实现思路: 创建 Sa ...
- django实战(二)--带多字段模糊查询的分页(也是不容易)
上节我们实现了分页功能,这节我们要实现对模糊查询后的结果进行分页.(引入了bootstrap框架) urls.py from django.urls import path from . import ...
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- java 查询路径中所有文件夹和文件的名称,支持文件名模糊查询
java 查询路径中所有文件夹和文件的名称,支持文件名模糊查询 有时候我们遇到需要查询服务器或者本机某个路径下有哪些文件?或者根据文件名称模糊搜索文件,那么就可以使用本方法:可以获取某个路径下所有文件 ...
- vue+element ui 的上传文件使用组件
前言:工作中用到 vue+element ui 的前端框架,使用到上传文件,则想着封装为组件,达到复用,可扩展.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9 ...
- Django+element ui前后端不分离的博客程序
最近把去年写的一个烂尾博客(使用了django1.11和element ui)又重新完善了一下,修改了样式和增加了新功能 github链接:https://github.com/ngauerh/Nag ...
随机推荐
- 在php中如何实现cookie即时生效,不用刷新就可以使用
参考:https://www.jianshu.com/p/0468ef5dbf4d 今天在用php设置cookie的时候,发现cookie如果只是赋值一次的话,要手动刷新一下浏览器才能把数据及时更新, ...
- Oracle把表记录恢复到指定时间节点
可以执行以下命令alter table 表名 enable row movement; --开启表行移动flashback table 表名 to timestamp to_timestamp('20 ...
- dhcpd.conf(5) - Linux man page
http://linux.die.net/man/5/dhcpd.conf Name dhcpd.conf - dhcpd configuration file Description The d ...
- 如何创建和部署自己的EOS代币
本文我们将弄清楚什么是EOS代币以及如何自己创建和部署EOS代币. 与以太坊相反,EOS带有即插即用的代币智能合约.以太坊拥有ERC20智能合约,EOS拥有eosio.token智能合约.Eosio. ...
- 使用mvp+rxjava+retrofit加载数据
将mvp和rxjava和retrofit简单整合的列子,让activity的代码不再那么臃肿,只负责显示数据. 关于mvp的介绍可以看这里, 关于Rxjava的介绍可以看这里; 关于retrofit的 ...
- 数学--数论--HDU-2698 Maximum Multiple(规律)
Given an integer nn, Chiaki would like to find three positive integers xx, yy and zzsuch that: n=x+y ...
- python(写入 excel 操作 xlwt 模块)
一.安装 xlwt 模块 pip install xlwt 二.excel 写入操作 这种方式只能新增或者覆盖文件写入 import xlwt # 创建一个workbook 设置编码 workbook ...
- ZABBIX自动发现Redis端口并监控
由于一台服务器开启许多Redis实例,如果一台一台的监控太耗费时间,也非常容器出错.这种费力不讨好的事情我们是坚决杜绝的,幸好ZABBIX有自动发现功能,今天我们就来用该功能来监控我们的Redis实例 ...
- 说一说Web开发中两种常用的分层架构及其对应的代码模型
昨天妹子让我帮她解决个问题,本以为可以轻松搞定,但是打开他们项目的一瞬间,我头皮发麻.本身功能不多的一个小项目,解决方案里竟然有几十个类库.仅仅搞明白各个类库的作用,代码层次之间的引用关系就花了一个多 ...
- 大富翁 线段树+二分 +dfs
https://csustacm.fun/problem/2033 这个题目还是比较简单的,但是比赛的时候没有像清楚,用了一个不太熟悉的数据结构主席树, 所以出现了bug,主席树的bug是真的难找. ...