使用Django如何实现一个分页与搜索功能

  介绍

这期内容当中小编将会给大家带来有关使用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如何实现一个分页与搜索功能