我需要添加一个python装饰器烧瓶路线的功能,(基本上我编辑从here代码)Python的装饰与瓶
def requires_admin(f):
def wrapper(f):
@wraps(f)
def wrapped(*args, **kwargs):
#if not admin:
#return render_template('error.html')
return f(*args, **kwargs)
return wrapped
return wrapper
,并使用它像这将是确定:
@app.route('/admin/action')
@requires_admin
def AdminAction():
#NO error if NO parameter
但使用这样就会有错误:
@app.route('/admin/action/<int:id>')
@requires_admin
def AdminAction(id):
在瓶0.10,我得到这样的错误(我只是updat从瓶0.9编至0.10,并在瓶0.9有这样的没有语法错误):
@requires_admin
File "/usr/local/lib/python2.6/dist-packages/Flask-0.10.1-py2.6.egg/flask/app.
py", line 1013, in decorator
self.add_url_rule(rule, endpoint, f, **options)
File "/usr/local/lib/python2.6/dist-packages/Flask-0.10.1-py2.6.egg/flask/app.
py", line 62, in wrapper_func
return f(self, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/Flask-0.10.1-py2.6.egg/flask/app.
py", line 984, in add_url_rule
'existing endpoint function: %s' % endpoint)
AssertionError: View function mapping is overwriting an existing endpoint functi
on: wrapper
我非常新的东西装饰,我该如何纠正这一错误?
不是100%肯定,但可能你需要提供一个'endpoint'参数的路线?见http://stackoverflow.com/questions/17540754/route-to-view-func-with-same-decorators-flask –
@ will-hart我刚刚更新了这个问题。只有参数会有错误。 –
@JamesKing它的http://stackoverflow.com/questions/28381560/most-effective-way-to-find-and-replace一个很好的问题。你只是因为缺乏努力而感到低落。回来尝试,我会准备好提供一个答案。 –