如何用Django实现长尾关键词的动态分页效果?
- 内容介绍
- 文章标签
- 相关推荐
本文共计643个文字,预计阅读时间需要3分钟。
Django 分页功能实现,参考以下内容:
创建项目,添加APP,添加视图函数和路由配置,实现分页功能:
1. 创建项目:bashdjango-admin startproject myproject
2. 添加APP:bashcd myprojectpython manage.py startapp myapp
3. 在myapp/urls.py中添加路由配置:pythonfrom django.urls import pathfrom . import views
urlpatterns=[ path('index/', views.index, name='index'),]
4. 在myapp/views.py中添加视图函数:pythonfrom django.shortcuts import renderfrom django.core.paginator import Paginator
def index(request): # 假设我们有一个包含大量数据的列表 data_list=list(range(1, 101))
# 创建分页器对象 paginator=Paginator(data_list, 10) # 每页显示10条数据
# 获取当前页码 page_number=request.GET.get('page')
# 获取当前页面的数据 page_obj=paginator.get_page(page_number)
return render(request, 'index.', {'page_obj': page_obj})
5. 在myapp/templates/index.中添加视图函数的输出: 分页示例 分页示例 {% for item in page_obj %} {{ item }} {% endfor %} {% if page_obj.has_previous %} 上一页 {% endif %} 第 {{ page_obj.number }} 页,共 {{ page_obj.paginator.num_pages }} 页 {% if page_obj.has_next %} 下一页 {% endif %}
现在,运行项目并访问`http://127.0.0.1:8000/index/`,您将看到分页功能的效果。
Django 分页功能的实现,供大家参考,具体内容如下
创建项目创建APP,添加APP这些就不在多说我们这次重点来看到视图函数
下面是路由设置
视图函数继承TemplateView
views.py
class index4(ListView): template_name = 'index5.html' # 设置模板文件以至于找到该模板文件 extra_context = {'title': '人员信息表'} # 设置响应内容 queryset = PersonInfo.objects.all() # 设置查询模型查询所有信息 paginate_by = 1 # 每页展示的数据 context_object_name = 'personInfo' # 设置模板名称
接下来就是HTML模板的编写
index5.py
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{ title }}</title> </head> <body> <h1>{{ title }}</h1> <table border="8"> {% for i in personInfo %} <tr> <th>{{ i.name }}</th> <th>{{ i.age }}</th> </tr> {%endfor%} </table> <br> {% if is_paginated %} <div class="pagination"> <span class="page-links"> {% if page_obj.has_previous %} <a href="/?page={{ page_obj.previous_page_number }}" >上一页</a> {% endif %} {% if page_obj.has_next %} <a href="/?page={{ page_obj.next_page_number }}" >下一页</a> {% endif %} <br> <br> <span class="page-current"> 第{{ page_obj.number }}页 共{{ page_obj.paginator.num_pages }}页 </span> </span> </div> {% endif %} </body> </html>
运行功能图片
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计643个文字,预计阅读时间需要3分钟。
Django 分页功能实现,参考以下内容:
创建项目,添加APP,添加视图函数和路由配置,实现分页功能:
1. 创建项目:bashdjango-admin startproject myproject
2. 添加APP:bashcd myprojectpython manage.py startapp myapp
3. 在myapp/urls.py中添加路由配置:pythonfrom django.urls import pathfrom . import views
urlpatterns=[ path('index/', views.index, name='index'),]
4. 在myapp/views.py中添加视图函数:pythonfrom django.shortcuts import renderfrom django.core.paginator import Paginator
def index(request): # 假设我们有一个包含大量数据的列表 data_list=list(range(1, 101))
# 创建分页器对象 paginator=Paginator(data_list, 10) # 每页显示10条数据
# 获取当前页码 page_number=request.GET.get('page')
# 获取当前页面的数据 page_obj=paginator.get_page(page_number)
return render(request, 'index.', {'page_obj': page_obj})
5. 在myapp/templates/index.中添加视图函数的输出: 分页示例 分页示例 {% for item in page_obj %} {{ item }} {% endfor %} {% if page_obj.has_previous %} 上一页 {% endif %} 第 {{ page_obj.number }} 页,共 {{ page_obj.paginator.num_pages }} 页 {% if page_obj.has_next %} 下一页 {% endif %}
现在,运行项目并访问`http://127.0.0.1:8000/index/`,您将看到分页功能的效果。
Django 分页功能的实现,供大家参考,具体内容如下
创建项目创建APP,添加APP这些就不在多说我们这次重点来看到视图函数
下面是路由设置
视图函数继承TemplateView
views.py
class index4(ListView): template_name = 'index5.html' # 设置模板文件以至于找到该模板文件 extra_context = {'title': '人员信息表'} # 设置响应内容 queryset = PersonInfo.objects.all() # 设置查询模型查询所有信息 paginate_by = 1 # 每页展示的数据 context_object_name = 'personInfo' # 设置模板名称
接下来就是HTML模板的编写
index5.py
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{ title }}</title> </head> <body> <h1>{{ title }}</h1> <table border="8"> {% for i in personInfo %} <tr> <th>{{ i.name }}</th> <th>{{ i.age }}</th> </tr> {%endfor%} </table> <br> {% if is_paginated %} <div class="pagination"> <span class="page-links"> {% if page_obj.has_previous %} <a href="/?page={{ page_obj.previous_page_number }}" >上一页</a> {% endif %} {% if page_obj.has_next %} <a href="/?page={{ page_obj.next_page_number }}" >下一页</a> {% endif %} <br> <br> <span class="page-current"> 第{{ page_obj.number }}页 共{{ page_obj.paginator.num_pages }}页 </span> </span> </div> {% endif %} </body> </html>
运行功能图片
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

