对与上一篇深刻理解
@app.route("/<name>")
def hello(name):
return "hello world"
这三行代码定义了一个URL到Python函数的映射关系,将这种映射关系的程序称为路由,而hello函数就是视图函数。
动态路由
@app.route("/<name>")
def hello(name):
return "<h1>hello %s</h1>" %name
Flask支持这种动态形式的路由,路由中的动态部分默认时字符串,也支持使用int、float.比如路由/articles/只会匹配动态片段id为整数的URL
https://hello.com/articles/100,https://hello.com/articles/101,但不匹配
https://hello.com/articles/the-first-article 这种 URL。
反向路由
从函数获取该函数的url地址
from flask import Flask,url_for
app=Flask(__name__)
@app.route('/query_url')
def query():
return "查询的地址为:"+ url_for('query')
if __name__=='__main__':
app.run()
静态文件
即不会被改变的文件,比如图片,CSS文件和JavaScript原码文件。默认情况下,Flask在程序根目录中名为static的子目录中寻找静态文件。因此可以将静态文件放置在此目录。
有时还会应用到第三方库,为了不跟CSS文件和JavaScript原码文件混起来,可以将这些第三方库放到lib文件夹或者vender文件夹
提供一个favicon图标
favicon是favorites icon的缩写,也被称为website icon(网页图标)。通常而言,定义一个favicon的方法是将一个名为“favicon.ico“的文件置于Web服务器的根目录下。但是,正如我们在上面指出,
我们一般将图片等静态资源放在一个单独的static文件夹中。为了解决这种不一致,我们可以在站点模板的部分添加两个link组件,比如我们可以在template/base.html中定义favicon图标:
{% 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%}
在上面的代码中,我们使用了super()来保留基模板中定义的块的原始内容,并添加了两个 link组件声明图标位置,这两个link组件声明会插入到head块的末尾。