15

我正在使用 Flask 0.9。我有使用 Google App Engine 的经验。

  1. 在 GAE 中,url 匹配模式按照它们出现的顺序进行评估,先到先得。Flask中的情况是否相同?

  2. 在 Flask 中,如何编写一个 url 匹配模式来处理所有其他不匹配的 url。在 GAE 中,你只需要放在/.*最后,比如:('/.*', Not_Found). 由于 Flask 不支持 Regex,如何在 Flask 中做同样的事情。

4

2 回答 2

25

这适用于您的第二个问题。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'This is the front page'

@app.route('/hello/')
def hello():
    return 'This catches /hello'

@app.route('/')
@app.route('/<first>')
@app.route('/<first>/<path:rest>')
def fallback(first=None, rest=None):
    return 'This one catches everything else'

path会抓住一切直到最后。更多关于变量转换器的信息

于 2012-12-24T17:00:12.063 回答
18
  1. 我认为这是答案http://flask.pocoo.org/docs/design/#the-routing-system
  2. 如果您需要处理服务器上未找到的所有 url — 只需创建 404 处理程序:

    @app.errorhandler(404)
    def page_not_found(e):
        # your processing here
        return result
    
于 2012-12-24T16:57:56.243 回答