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

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. java实现SSO(SingleSignOn)单点登录服务

    单点登录SSO:是指用户通过一次登录,可以访问任意所有相互信任的应用系统.即一处登录,处处登录.比如阿里系下的淘宝.天猫等,虽然是不同的产品,但归于一个体系下,是可以相互信任的应用系统. 为了方便用户 ...

  2. 李宏毅老师机器学习课程笔记_ML Lecture 1: 回归案例研究

    引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...

  3. JSOI 2016 病毒感染 辅助Dp问题

    原题链接:https://www.luogu.com.cn/problem/P5774 分析 直接看这道题,第一个困惑点,那个绝对值的比较是什么东西,根据数学知识,我们可以知道这个意思是k到i的距离小 ...

  4. redis处理高并发

    参考: https://www.cnblogs.com/wanlei/p/10464517.html 关于Redis处理高并发 Redis的高并发和快速原因 1.Redis是基于内存的,内存的读写速度 ...

  5. 机器学习中的 7 大损失函数实战总结(附Python演练)

    介绍 想象一下-你已经在给定的数据集上训练了机器学习模型,并准备好将它交付给客户.但是,你如何确定该模型能够提供最佳结果?是否有指标或技术可以帮助你快速评估数据集上的模型? 当然是有的,简而言之,机器 ...

  6. python中如何在一个for循环中遍历两个列表

    `其实就是用zip把两个列表包装起来:  for x, y in zip(list1, list2) 

  7. Kali Linux的安装

    20175314 2020-02 <网络对抗技术>Exp0 Kali Linux的安装 Week1 目录 20175314 2020-02 <网络对抗技术>Exp0 Kali ...

  8. 【Ubuntu】常用命令汇总,整理ing

    Ubuntu 常用命令(在此页面中Ctrl+F即可快速查找) 在Ubuntu系统使用过程中,会不断地接触到命令行操作,下面对一些常用的命令进行汇总,方便查找. 1.文件操作 1.1 文件复制拷贝 cp ...

  9. 写给小白看的入门级 Java 基本语法,强烈推荐

    之前写的一篇我去阅读量非常不错,但有一句留言深深地刺痛了我: 培训班学习半年,工作半年,我现在都看不懂你这篇文章,甚至看不下去,对于我来说有点深. 从表面上看,这句话有点讽刺我的文章写得不够通俗易懂的 ...

  10. twoway 系列命令绘制地图

    twoway 系列命令绘制地图 ❝ 在谈到用stata绘制地图时,很多人首先想到的是spmap命令.其实,最常见的twoway系列命令就可以完成我们的大多数绘图需求. 对于spmap命令的使用,在线资 ...