目录
视图中添加装饰器
from flask import Flask
app = Flask(__name__)
def wapper(func):
def inner(*args, **kwargs):
print('before')
return func(*args, **kwargs)
return inner
@app.route('/index/<int:nid>', methods=['GET','POST'])
@wapper
def index(nid):
print(nid)
return "index"
if __name__ == '__main__':
app.run()
- 这里
/index
对应的 函数是inner
,endpoint
的默认值也是inner
- 这时使用url_for反向生成URL会报错.
解决 :
- 在装饰器里面添加
@functools.wraps(func)
, 使被装饰的函数还等于原来的函数名.
import functools
def wapper(func):
@functools.wraps(func)
def inner(*args, **kwargs):
print('before')
return func(*args, **kwargs)
return inner