一、装饰器
flask里的装饰器route类似于add_url_rule()
为什么呢?
在flask里定义的route函数代码大致为:
def route(self, rule, **options):
def decorator(f): // f = 上面要返回的函数(如@app.route(‘/(这里的函数)’))
self.add_url_rule(rule‘rule’,endpoint,f,**options) //引号里的rule就是上面的rule传过来的
return f
return decorator
由上可知,其实就是在route里面调用了add_url_rule()
实质上:
=
route这个装饰器其实就是将rule字符串跟视图函数进行了绑定,通过add_url_rule()实现绑定
所以我们写代码将会用route
二、路由变量:
@app.route(‘/xx/<key>’)
xx:随便一个路由的名字,以xx代替
key:随便起一个名,不是key但是默认是字符串类型
如果key有歧义,需要声明字符串,代码即将为:
@app.route(‘/xx/<str:key>’)
注:如果那个是字符串就不用str:了
-装饰器支持的转换类型:
//获取自己的uuid
import uuid
Uid=uuid.uuid4()
三、以下报错为装饰器支持返回的类型:
a) 返回时可以强制转换类型。
b) 返回的字符串类型其实也是做了response封装,最终返回的还是response对象。
注意:tuple元组不能直接使用,所谓元组就是以下面形式传的:
def index2():
Return ‘hello world’,200
不能像其他的一样写进@app.route()里
四、关于response响应
五、唯一的URL/重定向行为:
@app.route(‘/about’)
请求路由中如果请求 /about/ 显示 not found
@app.route(‘/about/’)
请求路由有没有在后面加/都能显示 请求时带/就正好匹配,没有带/相当于重定向,也能进去