django 打开的html css_Django分页完整示例
现在,首先,需要使用此命令创建一个新的django项目。我称这个项目为MyProject
django-admin startproject ProjectName
首先,需要将目录更改为已创建的项目,然后需要创建一个App,我将其称为MyApp。
python manage.py startapp MyApp
另外,还需要在settings.py(INSTALLED_APPS)中添加新创建的应用。
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'MyApp']
在此之后进行数据库迁移:
python manage.py migrate
另外,还需要创建一个模板文件夹,因为我们需要向模板文件夹中添加一些html文件,请确保在创建模板文件夹后需要打开settings.py并将模板目录添加到DIRS部分中,如下所示。
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['templates'],
1:基于函数的视图中的分页
现在,首先,需要在应用程序中打开models.py文件并创建模型。
from django.db import modelsfrom django.utils import timezone# Create your models here.class Post(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) body = models.TextField() publish = models.DateTimeField(default=timezone.now()) def __str__(self): return self.title
基本上,我们有一个具有四个没有id的字段的模型。之后,需要进行这样的迁移。
python manage.py makemigrationspython manage.py migrate
首先,需要打开views.py文件并创建视图功能。
from django.shortcuts import renderfrom .models import Postfrom django.core.paginator import Paginator, EmptyPage, PageNotAnInteger# Create your views here.def Index(request): post_list = Post.objects.all() paginator = Paginator(post_list, 2) page = request.GET.get('page') try: posts = paginator.page(page) except PageNotAnInteger: posts = paginator.page(1) except EmptyPage: posts = paginator.page(paginator.num_pages) return render(request, 'index.html', {'page':page,'posts':posts})
可以看到我们已经在索引视图功能中完成了分页确定,现在需要在创建的应用程序中创建一个新的urls.py。并链接您的视图功能,像这样:
from django.urls import pathfrom .views import Indexurlpatterns = [ path('', Index),]
而且还需要像这样在主项目urls.py中包含应用程序urls.py
from django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path('admin/', admin.site.urls), path('', include('MyApp.urls'))]
现在,在的模板文件夹中,需要创建两个这样的html文件。
<html lang="en"><head> <meta charset="UTF-8"> <title>Titletitle> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">head><body><div class = "jumbotron"> {% for post in posts %} <h1 class="display-4">{{post.title}}h1> Published {{post.publish}} by {{post.author}} {{post.body|truncatewords:30|linebreaks}} <hr class="my-4"> {% endfor %}div>{% include "pagination.html" with page=posts %}body>html>
所以这是我们的索引html文件,也可以在顶部看到我添加了Bootstrap CDN链接,因为我将使用一些bootstrap样式进行分页。该代码用于包含我们尚未创建的分页文件。
{% include "pagination.html" with page=posts %}
由于我们传递给模板的Page对象称为帖子,因此我们将分页模板包括在帖子列表模板中,并传递参数以正确呈现它。可以按照此方法在不同模型的分页视图中重用分页模板。
现在,这是我们的pagination.html文件。
"Page navigation example" >
class= class= {% if page.has_previous %} class= {% endif %} class= class= class= {% if page.has_next %} class= {% endif %}
现在可以运行的项目,将看到分页。
python manage.py runserver
这将是分页的结果。
2:基于类的视图分页
因此,对于基于类的视图分页,我们需要像这样在views.py文件中进行一些更改。
from django.shortcuts import renderfrom .models import Postfrom django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerfrom django.views.generic import ListView# Create your views here.'''def Index(request): post_list = Post.objects.all() paginator = Paginator(post_list, 2) page = request.GET.get('page') try: posts = paginator.page(page) except PageNotAnInteger: posts = paginator.page(1) except EmptyPage: posts = paginator.page(paginator.num_pages) return render(request, 'index.html', {'page':page,'posts':posts})'''class PostList(ListView): queryset = Post.objects.all() context_object_name = 'posts' paginate_by = 2 template_name = 'index.html'
django.views.generic.list.ListView提供了一种内置的方法来对显示的列表进行分页。可以通过在视图类中添加paginate_by属性来实现此目的,这会限制每页的对象数,并向上下文中添加paginator和page_obj。要允许用户在页面之间导航,请在模板中添加指向下一页和上一页的链接。
现在,在此之后,需要打开urls.py并注释上一个视图,并添加基于类的视图
from django.urls import pathfrom .views import PostListurlpatterns = [ #path('', Index), path('', PostList.as_view())]
可以在顶部看到我们已经导入了PostList,为了保持分页功能,我们必须使用正确的页面。传递给模板的对象。Django的ListView通用视图将所选页面传递到名为page_obj的变量中,因此必须相应地编辑index.html模板,以使用正确的变量包括分页器,如下所示:
{% include 'pagination.html' with page=page_obj %}
因此,如果运行项目,结果跟上面截图是一样的。
完毕,希望这篇对大家学习有帮助。
django 打开的html css_Django分页完整示例相关推荐
- Spring Boot + JPA + Freemarker 实现后端分页 完整示例
Spring Boot + JPA + Freemarker 实现后端分页 完整示例 界面效果 螢幕快照 2017-07-28 15.34.42.png 螢幕快照 2017-07-28 15.34.2 ...
- Django上传文件及分页
Django上传文件及分页 文章目录 Django上传文件及分页 一.上传图片 二.在管理页面admin中上传图片 三.自定义form表单中上传图片 四.显示图片 五.分页 六.省市区案例 一.上传图 ...
- eclipse 创建maven 项目 动态web工程完整示例
需求表均同springmvc案例 此处只是使用maven 注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,说白了就是新建项目的时候已经可以找到maven了 没有的话需要安装m ...
- react-template 包含客户端,服务端渲染完整示例
原文链接 React version 16.2 版本脚手架 包含客户端,服务端渲染完整示例,使用了最新的react,并实现version 16.2 最新的服务端渲染; 解决了一些之前的服务端渲染bug ...
- 利用ffmpeg来进行视频解码的完整示例代码
(转)利用ffmpeg来进行视频解码的完整示例代码(H.264) Decode() { FILE * inpf; int nWrite; int i,p; int nalLen; unsign ...
- springcloud项目的启动顺序_Spring Cloud微服务项目完整示例,含注册中心,网关,断路器等等...
Spring Cloud微服务项目完整示例 目的是为了演示基于Spring Cloud微服务框架,搭建一个接近业务实际场景的项目,只实现了后端项目,前端可以使用VUE或者其他框架. 后端框架包括注册中 ...
- php pdo 与对比mysql,php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例...
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例 本文实例讲述了php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率.分享给大家供大家参考,具体如下: ...
- EasyUI(2):PHP+EasyUI的增、删、改操作的完整示例
想完成一个EasyUI+PHP的完整示例,主要针对一个数据表记录的增加.删除和修改,方便以后写类似的程序. 经过一天多的努力,差不多算完成了,只是后台数据操作部分了. 初始界面: 添加记录: 正确提交 ...
- POI操作ppt图表完整示例演示
poi操作ppt图表史上最完整示例演示和内嵌excel的获取添加数据简单示例,POI3.15版本. 在模板中构造几中基本图表进行测试就行了. 其它操作ppt的基础资料见:http://blog.csd ...
最新文章
- Java程序员到架构师的推荐阅读书籍
- Java面向对象(2)--类的成员属性
- 《精通Spring 4.x 企业应用开发实战》学习笔记
- 中科院人工智能应用 福玛特550G解析
- service: no such service mysqld 与 MySQL 的开启、关闭和重启
- 上传图片并显示缩略图的最简单方法(c#)
- np.multipy()函数解读
- windows 上vim 插件安装
- 读书笔记—产品型社群:互联网思维的本质
- 形容等待时间长的句子_形容“等待时间长”的成语有哪些?
- c语言数字大小排序的理解,教孩子数字比大小,排序很重要
- ABAQUS如何输出应力应变曲线(XY曲线)
- 真相(truth)最可怕的敌人不是谎言(lie),而是神话(myth)---《唐浩明点评曾国藩家书》书评
- js清除cookie有时无法清除
- bzoj 4398 福慧双修 题解
- umi_tools使用
- COBIT+2019框架治理和管理目标(资料下载)
- c语言允许用户重复计算,C语言-第3章最简单的C程序设计练习题.doc
- MarksSpencer玛莎百货验厂标准
- 利用Excel处理统计数据
热门文章
- python期末设计作品_期末作品检查
- 知乎:学计算机的女生都怎么样了?
- CMSIS-DAP和J-Link、ST-Link是什么关系?
- HDLBits答案(15)_Verilog有限状态机(2)
- 树莓派4b上部署yolov3和v3-tiny记录带截图
- 基于VHDL报警系统设计
- linux有没有递归函数,递归函数
- c++ int8_t转int_Python 90行代码让微信地球转起来,你也可以!| 原力计划
- 气象背景场_“把脉”风雨 服务为民——甘肃研究型气象预报业务体系发展扫描...
- r23中文测试软件,Maxon公布最新的CINEBENCH R23测试软件