- Flask-Bootstrap
- 安装
- 使用
Flask-Bootstrap Bootstrap 是 Twitter 开发的一个开源框架,它提供的用户界面组件可用于创建整洁且具有吸引力的网页,而且这些网页还能兼容所有现代 Web 浏览器。
Bootstrap
是客户端框架,因此不会直接涉及服务器。服务器需要做的只是提供引用了 Bootstrap
层叠样式表(CSS)和 JavaScript
文件的 HTML 响应, 并且 HTML、CSS 和 JavaScript
代码中实例化所需组件。这些操作最理想的执行场所就是模版。Flask-Bootstrap
可以在程序中集成 Bootstrap
安装
pip install flask-bootstrap
使用
Flask
扩展一般都在创建程序实例时初始化。from flask_bootstrap import Bootstrap#...bootstrap = Bootstrap(app)
初始化
Flask-Bootstrap
之后,就可以在程序中使用一个包含所有Bootstrap
文件的基模版。这个模版利用 Jinja2
的模版继承机制,让程序扩展一个具有基本页面结构的基模版,其中就有用来引入 Bootstrap
的元素。{% extends "bootstrap/base.html" %}{% block title %}Flasky{% endblock %}{% block navbar %}
Hello, {{ name }}!
{% endblock %}
{% endblock %}{% block content %}
Jinja2
中的 extends
指令从 Flask-Bootstrap
中导入 bootstrap/base.html
,从而实现模版继承。Flask-Bootstrap
中的基模版提供了一个网页框架,引入了 Bootstrap
中的所有 CSS 和 JavaScript 文件。基模版中定义了可在衍生模版中重定义的块。
block
和 endblock
指令定义的块中的内容可添加到基模版中。上面这个示例定义了3个块,分别名为
title
、navbar
和content
。这些块都是基模版提供的,可在衍生模版中重新定义。Flask-Bootstrap
的 base.html
模块定义的可用块。块名 | 说明 |
---|---|
doc | 整个HTML文档 |
html_attribs | 标签的属性 |
html | 标签的内容 |
head | 标签的内容 |
title | |
metas | 一组 标签 |
styles | 层叠样式表定义 |
body_attribs | 标签的属性 |
body | 标签的内容 |
navbar | 用户自定义的导航条 |
content | 用户定义的页面内容 |
scripts | 文档底部的 JavaScript 声明 |
Flask-Bootstap
自用的, 如果直接重定义可能会导致一些问题。如果程序需要向已经有内容的块中添加新内容, 必须使用 Jinja2
提供的 super()
函数。例如,如果要在衍生模版中添加新的 JavaScript
文件,需要这么定义:{% block scripts %}
{{ super() }}
{% endblock %}
推荐阅读
- flask|Flask Mega-Tutorial V2.0 第13章(I18n和L10n)
- ModuleNotFoundError: No module named 'flask.ext'
- vs|VSCode编写简单flask文件&配置其虚拟运行环境(Windows)
- python|Flask jinja2模板加载静态文件
- 代码|python3 flask开发05 加载图片 添加css样式
- flask|Nginx+uwsgi+flask部署实战