带变量的Flask @route装饰器

时间:2015-03-26 12:16:29

标签: flask routes

为什么以下代码片段在“this produce error”注释的行中产生错误?我该怎么做才能纠正它?

@app.route('/', methods=['GET', 'POST']) 
@app.route('/index', methods=['GET']) 
@app.route('/lti/', methods=['GET', 'POST']) 
@app.route('/<fase>', methods=['GET', 'POST']) #this produces error!
@lti(request='initial', error=error, app=app) 
def index(lti=lti): 
    """ initial access page to the lti provider.  This page provides 
     authorization for the user. 

    :param lti: the `lti` object from `pylti` 
    :return: index page for lti provider 
    """ 
    return render_template('index.html', lti=lti)

1 个答案:

答案 0 :(得分:2)

<fase>是一个可变占位符。它捕获url中该位置的字符串,并将其传递给view函数。它作为与占位符同名的关键字传递,因此视图函数需要接受具有相同名称的参数(或**kwargs)。

@app.route('/<fase>', methods=['GET', 'POST'])
def index(fase=None, lti=lti):
    pass