每次用到都去百度找....找的还不行~~得自己改~~耗时耗力虽然不难~~~直接贴代码记录下方便自己用~~~~

Django之分页

定义成一个块,直接引用到对应的位置即可。。。

<div class="container">
<nav aria-label="Page navigation">
<ul class="pagination"> <!--上一页-->
<li class="{% if not page_info.page.has_previous %}disabled{% endif %}">
{% if page_info.page.has_previous %}
<a href="{{ url }}?page={{ page_info.page.previous_page_number }}" aria-label="Previous">
{% endif %}
<span aria-hidden="true">&laquo;</span>
</a>
</li> <!--页码-->
<!--这里展示页码使用传递过来的dis_range -->
{% for num in page_info.dis_range %}
<li class="{% if num == page_info.page.number %}active{% else %}{% endif %}" >
<a href="{{ url }}?page={{ num }}">{{ num }}</a>
</li>
{% endfor %} <!--下一页-->
<li class="{% if not page_info.page.has_next %}disabled{% endif %}">
{% if page_info.page.has_next %}
<a href="{{ url }}?page={{ page_info.page.next_page_number }}" aria-label="Next">
{% endif %}
<span aria-hidden="true">&raquo;</span>
</a>
</li> </ul>
</nav>
</div>

前端代码

直接将下面代码复制,然后调用方法,传入的参数必须为可迭代对象。

  • data["page"]为内容
  • data为页码

def create_page(request, object_list, per_page=20):
''' :param request:
:param obj_list:
:param page_shows: 每页显示多少数据
:return:
'''
paginator = Paginator(object_list, per_page)
# 取出当前需要展示的页码, 默认为1
page_num = request.GET.get('page', default='')
# 根据页码从分页器中取出对应页的数据
try:
page = paginator.page(page_num)
except PageNotAnInteger as e:
# 不是整数返回第一页数据
page = paginator.page('')
page_num = 1
except EmptyPage as e:
# 当参数页码大于或小于页码范围时,会触发该异常
print('EmptyPage:{}'.format(e))
if int(page_num) > paginator.num_pages:
# 大于 获取最后一页数据返回
page = paginator.page(paginator.num_pages)
else:
# 小于 获取第一页
page = paginator.page(1) # 这部分是为了再有大量数据时,仍然保证所显示的页码数量不超过10,
page_num = int(page_num)
if page_num < 6:
if paginator.num_pages <= 10:
dis_range = range(1, paginator.num_pages + 1)
else:
dis_range = range(1, 11)
elif (page_num >= 6) and (page_num <= paginator.num_pages - 5):
dis_range = range(page_num - 5, page_num + 5)
else:
dis_range = range(paginator.num_pages - 9, paginator.num_pages + 1)
data = {
"page": page,
"paginator": paginator,
"dis_range": dis_range,
}
return data

Python代码

Django之请求时获取数组

不经常用.....每次用就想不起来~~百度的方式也要百度几次才能找到合适的答案

item_list = request.GET.getlist("item_list[]")

# 为什么要加这个[]?因为我用的是ajax的请求方式,ajax会自动在后面添加一个[],form提交方式不需要。

生成requirements.txt文件

在Pycharm中>打开Django项目>打开Terminal框>输入下面命令,即可!

pip3 freeze > requirements.txt  # 生成

pip3 install -r requirements.txt  # 安装命令

定时任务

更新中.................

Django系列操作的更多相关文章

  1. Django 系列博客(十三)

    Django 系列博客(十三) 前言 本篇博客介绍 Django 中的常用字段和参数. ORM 字段 AutoField int 自增列,必须填入参数 primary_key=True.当 model ...

  2. Django 系列博客(十一)

    Django 系列博客(十一) 前言 本篇博客介绍使用 ORM 来进行多表的操作,当然重点在查询方面. 创建表 实例: 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日 ...

  3. Django 系列博客(十)

    Django 系列博客(十) 前言 本篇博客介绍在 Django 中如何对数据库进行增删查改,主要为对单表进行操作. ORM简介 查询数据层次图解:如果操作 mysql,ORM 是在 pymysql ...

  4. Django 系列博客(八)

    Django 系列博客(八) 前言 本篇博客介绍 Django 中的模板层,模板都是Django 使用相关函数渲染后传输给前端在显式的,为了想要渲染出我们想要的数据,需要学习模板语法,相关过滤器.标签 ...

  5. Django 系列博客(四)

    Django 系列博客(四) 前言 本篇博客介绍 django 如何和数据库进行交互并且通过 model 进行数据的增删查改 ORM简介 ORM全称是:Object Relational Mappin ...

  6. Django 系列博客(二)

    Django 系列博客(二) 前言 今天博客的内容为使用 Django 完成第一个 Django 页面,并进行一些简单页面的搭建和转跳. 命令行搭建 Django 项目 创建纯净虚拟环境 在上一篇博客 ...

  7. Django 系列博客(一)

    Django 系列博客(一) 前言 学习了 python 这么久,终于到了Django 框架.这可以说是 python 名气最大的web 框架了,那么从今天开始会开始从 Django框架的安装到使用一 ...

  8. Django系列目录

    一:搭建自己的博客系列  搭建自己的博客(一):前期准备  搭建自己的博客(二):创建表,创建超级用户  搭建自己的博客(三):简单搭建首页和详情页 搭建自己的博客(四):优化首页和详情页 搭建自己的 ...

  9. Django models 操作高级补充

    Django models 操作高级补充 字段参数补充: 外键 约束取消 ..... ORM中原生SQL写法: raw connection extra

随机推荐

  1. Servlet(三)----Servlet体系与HTTP

    ## Servlet的体系结构 Servlet  ---  接口 | | GenericServlet  ---  抽象类 | | HttpServlet  --  抽象类 GenericServle ...

  2. 机器学习3- 一元线性回归+Python实现

    目录 1. 线性模型 2. 线性回归 2.1 一元线性回归 3. 一元线性回归的Python实现 3.1 使用 stikit-learn 3.1.1 导入必要模块 3.1.2 使用 Pandas 加载 ...

  3. vue基础指令学习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. OpenCV-Python 图像的几何变换 | 十四

    目标 学习将不同的几何变换应用到图像上,如平移.旋转.仿射变换等. 你会看到这些函数: cv.getPerspectiveTransform 变换 OpenCV提供了两个转换函数cv.warpAffi ...

  5. Linux常用命令 - find命令基础使用(重点)

    1篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 首先,先 ...

  6. CSS基础总结 1

    一.什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets),是一种用来表现 HTML 文档样式的语言,样式定义如何显示 HTML 元素,是能够真正做到网页表现与结构分 ...

  7. AttributeError: module 'tensorflow.python.keras.backend' has no attribute 'get_graph'处理办法

    原因:安装的tensorflow版本和keras版本不匹配,只需卸载keras,重新安装自己tensorflow对应的版本. Keras与tensorflow版本匹配查询网站  

  8. SQL实战(四)

    一. 题目描述 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分CREATE TABLE `employees` ( `emp_no` ...

  9. 实验十--- MySQL过程式数据库对象

    实验十 MySQL过程式数据库对象 一.  实验内容: 1. 存储过程的创建和调用 2. 存储函数的创建和调用 3. 触发器的创建和触发 4. 事件的创建和修改 一.  实验项目:员工管理数据库 用于 ...

  10. 在线诊断工具arthas (windows)

    介绍: arthas是阿里巴巴开发的一款开源的,Java应用程序排查问题的非常好用的工具 当你遇到以下类似问题而束手无策时 arthas 可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各 ...