Flask-Bootstrap

  • 第 1 种,在我们的 Jinja 模板中直接引入 Bootstrap 层叠样式表 (CSS) 和 JavaScript 文件,比如 ,bootstrap.min.js
  • 第 2 种,也是更简单的方法,就是使用一个 的扩展,它简化了集成 Bootstrap 的过程;

安装

使用 安装:

使用

现在,让我们写一个简单的 hello world 例子。

首先,新建一个 app.py 文件,代码如下:

  1. # -*- coding: utf-8 -*-
  2. from flask import Flask, render_template
  3. from flask_bootstrap import Bootstrap
  4. app = Flask(__name__)
  5. @app.route('/')
  6. def index():
  7. return render_template('index.html')
  8. @app.route('/book')
  9. def book():
  10. books = ['the first book', 'the second book']
  11. @app.route('/movie')
  12. movies = ['the first movie', 'the second movie']
  13. return render_template('index.html', movies=movies)
  14. if __name__ == '__main__':
  15. app.run(host='127.0.0.1', port=5200, debug=True)

新建一个 templates 文件夹,在该文件夹中添加一个 index.html 的文件,代码如下:

注意到上面模板中的第 1 行:

  1. {% extends "bootstrap/base.html" %}

这是利用了 Jinja2 的模板继承机制,我们在前面也已经讲过了,如果忘了,可点此查看extends 指令从 中导入 bootstrap/base.html,该基模板引入了 Bootstrap 中的所有 CSS 和 JavaScript 文件。通过这一句,我们就可以在模板中使用 Bootstrap 了,是不是很简单?

基模板除了提供上面的块,还定义了很多其他块,下面的表格列出了所有可用的块:

上面的块,比如 title, navbarcontent 是可以直接重定义的,但是,如果程序需要向已经有内容的块添加新内容,必须使用 Jinja2 提供的 super() 函数,比如 styles 块和 scripts 块:

  • 如果我们想添加自己的样式表,需要这样:
  • 如果我们想添加自己的 JavaScript 文件,需要这样:
  1. {% block scripts %}
  2. {{ super() }}
  3. <script src="{{url_for('.static', filename='myscripts.js')}}"></script>

本文完整的代码可在这里下载。

更多阅读