介绍
这期内容当中小编将会给大家带来有关使用Django如何实现一个分页与搜索功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
第一步,写路由:为了清晰,这里只给出主页和展示页面的路由。
url。py:
得到django.urls import 路径 得到只import 观点 得到django.conf.urls.static import 静态的 得到django.conf import 设置 得到django.contrib.staticfiles.urls import  staticfiles_urlpatterns , #,得到django.contrib import  staticfiles , urlpatterns =, ( ,#主页 ,路径(& # 39;& # 39;,,views.index), , ,#访问他人信息入口,分页展示 ,路径(& # 39;其他/概要# 39;,,views.request_user), , , +=urlpatterns 静态(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns +=, staticfiles_urlpatterns ()
第二步,写视图:这里做了访问限制,登录才能访问
视图。py:
得到django.contrib.auth.decorators import login_required 得到django.shortcuts import 渲染,重定向 得到django.http import HttpResponseRedirect HttpResponse 得到django.contrib.auth import 认证,登录,注销 得到.models import 用户信息,Email_Message,废物 得到django.contrib.auth.models import  AnonymousUser 得到django.core.paginator import  Paginator, EmptyPage, PageNotAnInteger , @login_required (login_url=& # 39;/tologin& # 39;) def request_user(请求): ,#实现搜索=,,key  request.GET.get(& # 39;关键# 39;)=,,all_users  UserInfo.objects.filter(凯特=奥蚣摇?所有()=,userlist [] ,#如果前端传入关键字,才会进行检索,否则显示全部买家 ,if 关键: for 才能;user  all_users:拷贝 ,,if key  user.address:拷贝 ,,,userlist.append(用户) all_users 才能=userlist ,if all_users: 时间=paginator 才能;Paginator (all_users, 2) page 才能=,request.GET.get(& # 39;页面# 39;) 尝试才能: ,,contacts =, paginator.page(页面) except 才能;PageNotAnInteger: ,,contacts =, paginator.page (1) except 才能;EmptyPage: ,,contacts =, paginator.page (paginator.num_pages) return 才能;渲染(请求,,& # 39;Myapp/userlist.html& # 39;,,{& # 39;接触# 39;:,联系}) ,其他的: 时间=info 才能;& # 39;暂无数据& # 39; return 才能使(请求,& # 39;Myapp/userlist.html& # 39;,,{& # 39;信息# 39;:,信息})
分页的原理是用到了django自带的分页组件
<强>需要注意的是,搜索的关键字传参,用的是得到请求,而不是帖子请求强>
简单来说,就是先判断前端页面是否用搜索框搜索了关键字,如果搜索了,那么这个词会被
键=request.GET.get(& # 39;关键# 39;)
赋值给钥匙,然后进行后续判断处理即可。
如果没有,就正常展示我们需要展示的。
分页的原理。
可以去看这个组件的文档介绍。
如果返回的关键检索不到结果,返回空数据页,并提醒。
html代码:
{%, load static %} & lt; !——(if lt  IE 7,]祝辞& lt; html 类=癐E ie6", lang=癳n"祝辞,& lt; ! [endif]——比; & lt; !——[if IE 7,]祝辞& lt; html 类=癐E ie7", lang=癳n"祝辞,& lt; ! [endif]——比; & lt; !——(if IE 8,)祝辞& lt; html 类=癐E ie8", lang=癳n"祝辞,& lt; ! [endif]——比; & lt; !——[if (gte IE 9) | ! (IE)]祝辞& lt; !——比; & lt; html  lang=癳n"祝辞,& lt;——& lt; ! [endif]——比; & lt; head> , ,& lt; !——, ico。位于 ,==================================================,——比; ,& lt; link  rel=& # 39; shortcut 图标# 39;https://www.yisu.com/zixun/, href="{%静态Myapp/img/标识。反对' %}" rel="外部nofollow " type="形象/x图标"/> 详细<标题> 名称> 使用Django如何实现一个分页与搜索功能