Flask中有多个CSS文件?

时间:2013-01-12 19:00:56

标签: python flask

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

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

我看过Flask的文档并且它们没有意义吗?

2 个答案:

答案 0 :(得分:4)

您可以覆盖< 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>

admin.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 %}

user.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') }}">

答案 1 :(得分:0)

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

{'css_file': 'admin.css'}

然后在模板中使用它:

<link rel="stylesheet" href="/css/{{ css_file }}" />