前言
最近搞了一些关于 flask 和 django 的东西,尤其是 django 的模板和 admin 功能以及这些框架使用 bootstrap 的东西,没时间更新博客,先说一下 flask 和 django 分页吧
flask-paginate">flask 的 bootstrap 分页插件 flask-paginate
其实安装很常规,他的思路就是根据你的数据量给每个页面加一个 li 前缀到最后返回的 div 里面。因为官网提供的说明很简单,我在这里仔细说说:
- 官网说给你的网站页面添加 css:
其实这个是给你页面显示统计数据的方法pagination.info提供的样式,默认的class='pagination'是bootstrap自带的,不需要你添加
2. 官网的例子使用的是:Blueprint:
我们一般都是: ‘from flask import Flask’,其实Blueprint就是一个可定制的容器,一个应用可以有多个容器,他们都继承于flask.helpers._PackageBoundObject
可以看我的一个例子:
我对他的一点修改:
- 我发现在我的程序里面,这个分页栏在后部会放不下而换行显示,我就直接把 link_css 制定的 div 改成了行内元素 span
当我默认使用 link_size, 代码是这样:
link_css = ' 这样就没有符合的 bootstrap 类,所以我修改了 links 方法:
django 的插件比较复杂,它自己定义了中间件和标签,这样你需要在模板中 load 它提供的函数,并且很 nb 的使用了 RequestContext 去处理变量,可以看张沈鹏以前写的一个小文章: django 简化 view 函数的编写
- 先看我的后台方法:
但是运行时候会报错:
不管你用那个插件都会有这个报错。。。
后来发现原因是:
settings 文件没有设置 TEMPLATE_CONTEXT_PROCESSORS理由:模板上下文处理器会指定了哪些 contextprocessors 总是默认被使用。这样就省去了每次使用 RequestContext 都指定 processors 的麻烦
在 settings 加入:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.media",
"django.core.context_processors.request"
)