Permalink: 2019-08-15 00:00:00+08:00 by duke in Flask tags: web

Flask 依赖

Flask有两个主要依赖:

  • Werkzeug
  • jinja2

路由、调试和 Web 服务器网关接口(Web Server Gateway Interface,WSGI)子系统由Werkzeug(http://werkzeug.pocoo.org/)提供

模板系统由Jinja2(http://jinja.pocoo.org/)提供。

WerkzeugJinjia2都是由 Flask 的核心开发者开发而成。

Flask 个人总结

对 Flask 简单总结下,用作备忘。

bootstrap的文章中说了,bootstrap 对于没 UI 设计师的情况下,就比较好用了。所以在 Flask 中也使用 bootstrap,正好也有 名为Flask-Bootstrap的Flask扩展

这样其实,就是把 bootstrapjinja 结合在一起了。jinja 提供模板功能、bootstrap 提供样式和响应。

具体就是在项目的 template 目录下,使用 jinja 的继承功能,extends "bootstrap/base.html", base.html代码如下:

{% block doc -%}
<!DOCTYPE html>
<html{% block html_attribs %}{% endblock html_attribs %}>
{%- block html %}
  <head>
    {%- block head %}
    <title>{% block title %}{{title|default}}{% endblock title %}</title>

    {%- block metas %}
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    {%- endblock metas %}

    {%- block styles %}
    <!-- Bootstrap -->
    <link href="{{bootstrap_find_resource('css/bootstrap.css', cdn='bootstrap')}}" rel="stylesheet">
    {%- endblock styles %}
    {%- endblock head %}
  </head>
  <body{% block body_attribs %}{% endblock body_attribs %}>
    {% block body -%}
    {% block navbar %}
    {%- endblock navbar %}
    {% block content -%}
    {%- endblock content %}

    {% block scripts %}
    <script src="{{bootstrap_find_resource('jquery.js', cdn='jquery')}}"></script>
    <script src="{{bootstrap_find_resource('js/bootstrap.js', cdn='bootstrap')}}"></script>
    {%- endblock scripts %}
    {%- endblock body %}
  </body>
{%- endblock html %}
</html>
{% endblock doc -%}

可以看出就是jinjabootstrap。理解了flaskjinjabootstrap 之间的关系,再在其基础上进行开发就得心应手了。