Flask:为什么在根路径中使用路径转换器不起作用?

时间:2013-10-11 21:53:20

标签: python flask url-routing werkzeug

from flask import Flask, render_template

app = Flask(__name__, static_url_path='')

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/page/<path:page>')
def article(page):
    return render_template('page.html')

if __name__ == "__main__":
    app.run()

工作得很好。但是,如果我将第二条路线更改为@app.route('/<path:page>'),那么对/path/to/page等网址的任何访问都会产生404。

为什么@app.route('/<path:page>')无效?

相关问题,但不回答这个问题:

2 个答案:

答案 0 :(得分:2)

static_url_path与路由冲突。 Flask认为/之后的路径是为静态文件保留的,因此path转换器不起作用。请参阅:URL routing conflicts for static files in Flask dev server

答案 1 :(得分:1)

对我来说完美无缺:

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/page/<path:page>')
def article(page):
    return render_template('page.html')

if __name__ == "__main__":
    app.debug = True
    app.run()

我可以访问:http://localhost/ - &gt; indexhttp://localhost/page/<any index/path e.g.: 1> - &gt; article