3.5 静态文件

Web 应用不是仅由 Python 代码和模板组成。多数应用还会使用静态文件,例如模板中 HTML 代码引用的图像、JavaScript 源码文件和 CSS。

你可能还记得,在第 2 章中审查 hello.py 应用的 URL 映射时,其中有一个 static 路由。

这是 Flask 为了支持静态文件而自动添加的,这个特殊路由的 URL 是 /static/

例如,调用 url_for('static', filename='css/styles.css', _external=True) 得到的结果 是 http://localhost:5000/static/css/styles.css。

默认设置下,Flask 在应用根目录中名为 static 的子目录中寻找静态文件。如果需要,可在 static 文件夹中使用子文件夹存放文件。

服务器收到映射到 static 路由上的 URL 后,生成的响应包含文件系统中对应文件里的内容。

示例 3-10 展示了如何在应用的基模板中引入 favicon.ico 图标。这个图标会显示在浏览器的 地址栏中。

示例 3-10 templates/base.html:定义收藏夹图标

{% block head %}
{{ super() }}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" 
    type="image/x-icon">
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}" 
    type="image/x-icon">
{% endblock %}

这个图标的声明插入 head 区块的末尾。注意,为了保留基模板中这个区块里的原始内容, 我们调用了 super()。

《基于Python的Web应用开发实战(第二版)》

posted @ 2019-01-07 13:23  °❆黄雷❄°  阅读(135)  评论(0编辑  收藏  举报