文章目录

在一个应用程序中,不只是由代码和模块组成,还有一些静态的文件。所以这节就来讲一讲静态文件的引用。

要引用静态文件,就要给它生成一个URl地址,那么这里就要用到一个url_for()函数。所以先来讲一下这个函数的使用方法。

url_for()可以使用程序URL映射中保存的信息生成URL。它最简单的用法就是以视图函数名作为参数,返回对应的URL。

假如我们有一下这个路由:

1
2
3
@app.route('/')
def index():
return '<h1>Hello World!</h1>'

如果我们调用url_for(‘index’),那么得到的结果将会是‘/’。而调用url_for(‘index’, _external=True)则返回绝对地址,即http://localhost:5000/

接下来我们来试一下给我们的程序加一个小图标。修改templates/base.html,在title块下面加入:

1
2
3
4
5
{% block head %}
{{ super() }}
<link rel="icon" href="{{ url_for('static', filename='icon.jpg') }}"
type="image/x-icon">
{% endblock %}

1.这里我们给模板添加一个head块,作用是在HTML页面的头部添加一个图标。
2.用super()获取它的基模板(即bootstrap/base.html)里原本的内容。
3.接着就是添加图标。注意这里url_for()函数有两个参数,第一个参数’static’是Flask里的一个特殊的路由(之前在第二章查看URL映射的时候有看到它哦),它映射到’/static/‘这个URL上。然后url_for()就给这个映射生成了URL。第二个参数就是文件名,给’/static/‘里的filename参数传入值。这里我的图标文件名为’icon.jpg’,所以这里url_for()函数返回的地址就是’/static/icon.jpg’。你也可以自己随便改,或者用你自己喜欢的图片。

注意,Flask默认在程序根目录下的static子目录寻找静态文件。所以这里我们要在程序根目录下创建一个static文件夹,把静态文件都放在里面。

这些都做好了,现在来看看这个图标,运行程序,可以看到:

看到那个图标了吧!!

Last:
Next:

文章目录