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

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(二)----注解配置

    ##  Servlet3.0 *  好处: *  支持注解配置.可以不需要web.xml了. *  步骤: 1.创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml 2. ...

  2. CF1327C Game with Chips 题解

    原题链接 简要题意: 每个点有起始目标和终点(二维).要求每次将所有点向一个方向移动一次(四方向,若出界则不变),使得每个点均 经过 其终点. 本题只要抓住本质,瞬间得解. 你会发现,如果要求每个点最 ...

  3. O3优化模板

    #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize("Ofast") #pragma GCC ...

  4. mac下 yarn Stack trace: ExitCodeException exitCode=127

    问题出在hadoop 为mac系统配置的读取java_home处. 更改 /Users/shaofengfeng/apache/hadoop/libexec/hadoop-config.sh 如下 # ...

  5. Java 添加、删除Excel表单控件

    通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...

  6. LightOj 1197 Help Hanzo 区间素数筛

    题意: 给定一个区间a,b,a-b>=100000,1<=a<=b<=231,求出给定a,b区间内的素数的个数 区间素数筛 (a+i-1)/ ii向上取整,当a为 i 的整数倍 ...

  7. 线程 -- ThreadLocal

    1,ThreadLocal 不是“本地线程”的意思,而是Thread 的局部变量.每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本 2, ...

  8. vue+cordova实现退出app效果

    //vue钩子函数created方法中添加监听等待设备API库加载好 created(){ var that = this; document.addEventListener("devic ...

  9. Java数据结构与排序

    一.引子:想要给ArrayList排序却发现没有排序方法?你有两种选择:        1.换用TreeSet:     2.使用Collection.sort(List<T> list) ...

  10. 数据源管理 | 基于JDBC模式,适配和管理动态数据源

    本文源码:GitHub·点这里 || GitEE·点这里 一.关系型数据源 1.动态数据源 动态管理数据源的基本功能:数据源加载,容器维护,持久化管理. 2.关系型数据库 不同厂商的关系型数据库,提供 ...