一分钟精通Flask-Bootstrap的使用
要想在程序中集成Bootstrap,显然要对模板做所有必要的改动。不过,更简单的方法是使用一个名为Flask-Bootstrap 的Flask 扩展,简化集成的过程。
安装:
Flask-Bootstrap 使用pip安装:
pip install flask_bootstrap
Flask 扩展一般都在创建程序实例时初始化,下面是Flask_Bootstrap的初始化方法
加载:
from flask_bootstrap import Bootstrap
初始化:
方法一:
app = Flask(__name__)
Bootstrap(app)
方法二:
实例:
页面加入: { %extends "bootstrap/base.html" %}
{% block title %} 首页 {% endblock %} {% block mycss %} {% endblock %}
{%extends "bootstrap/base.html"%}
{% block content %} {% endblock %}{% block myjs %} {% endblock %}
效果:

Jinja2 中的extends 指令从Flask-Bootstrap 中导入bootstrap/base.html, 从而实现模板继承。Flask-Bootstrap 中的基模板提供了一个网页框架,引入了Bootstrap 中的所有CSS 和JavaScript 文件。基模板中定义了可在衍生模板中重定义的块。block 和endblock 指令定义的块中的内容可添加到基模板中。上面这个user.html 模板定义了3 个块,分别名为title、navbar 和content。这些块都是基模板提供的,可在衍生模板中重新定义。title 块的作用很明显,其中的内容会出现在渲染后的HTML 文档头部,放在
Flask-Bootstrap 的base.html 模板还定义了很多其他块,都可在衍生模板中使用,下表列出了所有可用的块:
| 块名 | 说明 |
| doc | 整个html文档 |
| html_attribs | html标签属性 |
| html | html标签中的内容 |
| head | head标签中的内容 |
| title | title标签中的内容 |
| metas | 一组meta标签 |
| styles | 层叠样式表定义 |
| body_attribs | body标签的属性 |
| body | body标签中的内容 |
| navbar | 用户定义的导航条 |
| content | 用户定义的页面内容 |
| scripts | 文档底部的JavaScript 声明 |
上表中的很多块都是Flask-Bootstrap 自用的,如果直接重定义可能会导致一些问题。例如,Bootstrap 所需的文件在styles 和scripts 块中声明。如果程序需要向已经有内容的块中添加新内容,必须使用Jinja2 提供的super() 函数。例如,如果要在衍生模板中添加新的JavaScript 文件,需要这么定义scripts 块:
{% block scripts %}
{{ super() }}
{% endblock %}
关于settings配置文件:
BOOTSTRAP_USE_MINIFIED = True # 使用mini版的bootstrap文件
BOOTSTRAP_SERVE_LOCAL = False #是否使用本地服务器来提供bootstrap文件
BOOTSTRAP_LOCAL_SUBDOMAIN = None # 关于blueprint的子域名传输?暂时没用到
BOOTSTRAP_CDN_FORCE_SSL = True # 给CDN加速使用安全的https连接
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
