42Team-Flask框架-路由和视图

路由和视图

什么是路由?可以理解成把访问的URL绑定到自定义的方法或函数上,这个函数叫做视图函数。当访问我们的URL链接时,就会按照写好的函数去执行动作。

静态路由

我们使用route装饰器来把URL绑定到视图函数上。

1
2
3
@app.route('/hello')
def index():
return '<h1>42Team</h1>'

静态路由-2020-04-26

当用户要访问/hello时,就会进入到index()方法,将由h1标签包裹的42Team文本返回。

动态路由

和静态路由相对,上一段代码中,只有用户在访问/hello的时候才会进入到index()方法中执行,而我们访问网页时能看到很多部分地址是可变的,这就是动态路由。

1
2
3
@app.route('/say_<name>')
def say_name(name):
return '<h1>My name is {}</h1>'.format(name)

动态路由-2020-04-26

路由 URL 中放在尖括号里的内容就是动态部分,任何能匹配静态部分的 URL 都会映射到这个路由上。调用视图函数时,Flask 会将动态部分作为参数传入函数。在这个视图函数中,name 参数用于生成个性化的欢迎消息。

你也可以指定不同的数据类型映射到不同的函数上。有string,int,float,path类型。path类型有点特殊,它可以包含/正斜线,默认类型为。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@app.route('/say_<string:chars>')
def say_string(chars):
return '<h1>String is {}</h1>'.format(chars)

@app.route('/say_<int:num>')
def say_num(num):
return '<h1>Int Num is {}</h1>'.format(num)

@app.route('/say_<float:long>')
def say_float(long):
return '<h1>Long Float Num is {}</h1>'.format(long)

@app.route('/say_<path:inputs>')
def say_path(inputs):
return '<h1>Path is {}</h1>'.format(inputs)