0

你如何让你的模板在 Flask 中使用特定的 css 文件?

admin.html = admin.css  
user.html = user.css

我看过 Flask 文档,它们没有意义吗?

4

2 回答 2

5

您可以在子模板中覆盖基本模板中的 <head> 部分。所以每个用户页面都使用 base.html 模板中的 css 文件,只有 admin.html 使用其他文件。这记录在http://flask.pocoo.org/docs/patterns/templateinheritance/#template-inheritance

编辑:也许你可以使用这个:所有页面都派生自 base.html 并使用 base.css。只有 user.html 和 admin.html 会覆盖 head 部分并包含 base.css 和特定的 admin.css / user.css。

例子 :

base.html:

     <!doctype html>
     <html>
     <head>
      {% block head %}
        <link rel="stylesheet" href="{{ url_for('static', filename='base.css') }}">
      {% endblock %}
      </head>
      <body>
      <div id="content">{% block content %}{% endblock %}</div>

     </body>
     </html>

管理员.html:

    {% extends "base.html" %}
    {% block head %}
      <link rel="stylesheet" href="{{ url_for('static', filename='base.css') }}">
      <link rel="stylesheet" href="{{ url_for('static', filename='admin.css') }}">
    {% endblock %}
    {% block content %}
     content goes here
    {% endblock %}

用户.html:

    {% extends "base.html" %}
    {% block head %}
      <link rel="stylesheet" href="{{ url_for('static', filename='base.css') }}">
      <link rel="stylesheet" href="{{ url_for('static', filename='user.css') }}">
    {% endblock %}
    {% block content %}
     content goes here
    {% endblock %}

编辑:如果您将 css 文件存储在 static/ 的子目录中,则必须编写如下链接:

      <link rel="stylesheet" href="{{ url_for('static', filename='css/base.css') }}">
于 2013-01-12T19:22:18.757 回答
0

您可以将要使用的 css 文件作为变量传递给模板。

{'css_file': 'admin.css'}

然后在模板中使用它:

<link rel="stylesheet" href="/css/{{ css_file }}" />
于 2013-01-12T19:08:06.523 回答