[Flask]jinja2渲染分页导航部件
注意:
1.在视图函数中通过request.args.get('page')获取page数,并将page传给macros.html模板文件
效果:
点击8,就跳转到第8页数据了

视图函数
@app.route('/auto_test_case', methods=['GET', 'POST'])
def auto_test_case():
form = SearchForm()
page = request.args.get('page', 1, type=int)
per_page = current_app.config['GOGOTEST_CASE_PRE_PAGE']
# 获取全部脚本测试用例
pagination = TestCase.query.paginate(page, per_page=per_page)
auto_test_case_objs=pagination.items
return render_template('auto_test_case.html', pagination=pagination,cases=auto_test_case_objs, form=form,page=page)
macros.html定义宏:
<!--分页导航-->
{% macro my_render_pagination(pagination, endpoint) %}
<ul class="pagination">
<!-- {# 上一页 #}-->
{% if pagination.prev_num %}
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
{% else %}
<li class="disabled">
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
{% endif %} {% for page in pagination.iter_pages() %}
{% if page %}
{% if page != pagination.page %}
<li>
<a href="{{ url_for(request.endpoint, page=page) }}">{{ page }}</a>
</li>
{% else %}
<li class="active">
<a><strong>{{ page }}</strong></a>
</li>
{% endif %}
{% else %}
<li>
<span class=ellipsis>…</span>
</li>
{% endif %}
{% endfor %}
<!-- {# 下一页 #}-->
{% if pagination.next_num %}
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">»</span>
</a>
</li>
{% else %}
<li class="disabled">
<a href="#" aria-label="Previous">
<span aria-hidden="true">»</span>
</a>
</li>
{% endif %}
</ul>
{% endmacro %}
case_manage.html
导入宏
{%from "macros.html" import my_render_pagination%}
调用宏
<div class="page-footer">{{ my_render_pagination(pagination) }}
参考文档:
flask-bootstrap和分页
[Flask]jinja2渲染分页导航部件的更多相关文章
- 网站功能操作分布引导插件:Intro.js介绍;React里如何使用Intro.js以及如何进行分页导航
插件作用:使用向导,引导新用户正确使用Web网站.我的环境是React+Mobx. 基本使用介绍,参加代码地址里的README.md:https://github.com/usablica/intro ...
- Flask模板渲染
目录 Flask模板渲染 Jinja2模板引擎简介 模板 Jinja2 模板变量 变量 控制结构 宏,类似Python代码中的函数 模板继承 包含(Include) 过滤器 链式调用 常见内建过滤器 ...
- 初探 Python Flask+Jinja2 SSTI
初探 Python Flask+Jinja2 SSTI 文章首发安全客:https://www.anquanke.com/post/id/226900 SSTI简介 SSTI主要是因为某些语言的框架中 ...
- Bootstrap系列 -- 44. 分页导航
带页码的分页导航,可能是最常见的一种分页导航,特别是在列表页内容超多的时候,会给用户提供分页的导航方式.平时很多同学喜欢用div>a和div>span结构来制作带页码的分页导航.不过,在B ...
- 用flask实现的分页
一.flask实现的分页组件 from urllib.parse import urlencode,quote,unquote class Pagination(object): "&quo ...
- wordpress文章页两侧添加分页导航箭头
分页导航 如果添加在文章页的两侧,很方便读者翻阅,小编发现好多站长的博客都添加了这一功能,百度了一下,就是JS和css的功能,经过测试成功,分享一下流程. 1.添加Js 在headr.php或者foo ...
- Bootstrap学习-导航条-分页导航
1.导航条基础 导航条(navbar)和上一节介绍的导航(nav),就相差一个字,多了一个“条”字.其实在Bootstrap框架中他们还是明显的区别.在导航条(navbar)中有一个背景色.而且导航条 ...
- bootstrap基础学习【导航条、分页导航】(五)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- jinja2渲染使用
说明:通过jinja2渲染后只能打印出来效果,目前无法保存 例1:渲染 .j2 文件 1.安装jinja2模块 pip3 install jinja2 2.定义模板 说明:变量必须是小写,大写有的情况 ...
随机推荐
- mysql 5.7.24 root密码重置
sudo mysql -u root -p 初始root密码没有,直接按回车 show databases: use mysql; update user set authentication_str ...
- 【SDOI 2014】数表
题意 https://loj.ac/problem/2193 题解 显然就是求 $\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \sigma_1(\gcd{ ...
- java没有配置环境变量却可以生效的问题
最近在家里的电脑上安装了eclipse,安装完成后尝试打开eclipse的时候,我内心估计是要报错的.我期待看到的是,这个eclipse需要安装jdk才能运行,并且会告诉我需要的jdk版本. 结果ec ...
- jdbc 占位符插入null值 NullPointerException
如果变量flag 为空 ,那么executeUpdate 后面的参数 bookCollect.getFlag() 就会被executeUpdate()方法忽略掉,程序会报错. String addSq ...
- python 继承:重写、拓展(六)
1.继承:父类有的子类也有 2.多继承:若继承多个父类有相同的函数,则继承前面的函数,传递参数的个数也与继承的函数位置有关 3.超继承:针对继承一个父类使用,不仅有父类的特写同时也有自己的新特性 s ...
- 网站实现https访问
https协议 是一种通过计算机网络进行安全通信的传输协议.HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包.HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私 ...
- k8spod资源的基础管理操作
pod是k8s api中的核心资源类型,它可以定义在json或yaml格式的资源清单中,由资源管理命令进行陈述式或声明式管理.创建时,用户可通过create或apply命令将请求提交到apiserve ...
- 阅读之Java多线程
Java多线程 用多线程只有一个目的,就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现. 多线程:指的是这个程序(一个进程)运行时产生了不止一个线程 并行与并发: 并行:多个cpu ...
- jsp九大内置对象及四个作用域【转】
1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必 ...
- java 项目 文件关系 扫描 注释注入
https://blog.csdn.net/congweijing/article/details/82499627 controller.service.serviceImpl.Mapper.Xml ...