【发布时间】:2013-10-13 07:50:06
【问题描述】:
我一直在尝试了解如何生成动态 Flask URL。我已经阅读了文档和几个示例,但无法弄清楚为什么这段代码不起作用:
path = 'foo'
@app.route('/<path:path>', methods=['POST'])
def index(path=None):
# do some stuff...
return flask.render_template('index.html', path=path)
我希望我的 index.html 模板能够提供给 /foo,但事实并非如此。我收到构建错误。我错过了什么?
如果我使用固定路径,例如/bar,则一切正常。
@app.route('/bar', methods=['POST'])
【问题讨论】:
-
你说你“得到一个构建错误”。请更新您的问题并发布整个堆栈跟踪,以及导致构建错误发生的运行代码。
-
发布您的模板。当我尝试使用
url_for构建 url 时出现构建错误,flask 尝试为我尚未在应用程序上注册的端点构建 url。 -
至于创建动态 url,你已经知道了。不过,设置
path = 'foo'是多余的。看起来您希望'foo'被传递到您的视图并在您的模板上设置,但如果您导航到localhost:5000/,flask 将发送到'/',完全错过了这条路线。很确定在您的方法签名中设置path的默认值None也是不必要的,因为您的index视图函数的arg 将从请求URI 构建。永远不会使用默认值。