Flask URL Route: Route All other URLs to some func

2020-05-27 04:35发布

问题:

I am working with Flask 0.9. I have experience with Google App Engine.

  1. In GAE, the url match patterns are evaluated in the order they appear, first come first serve. Is it the same case in Flask?

  2. In Flask, how to write a url match pattern to deal with all other unmatched urls. In GAE, you only need to put /.* in the end, like: ('/.*', Not_Found). How to do the same thing in Flask since Flask wont support Regex.

回答1:

  1. I think this is the answer http://flask.pocoo.org/docs/design/#the-routing-system
  2. If you need to handle all urls not found on server — just create 404 hanlder:

    @app.errorhandler(404)
    def page_not_found(e):
        # your processing here
        return result
    


回答2:

This works for your second issue.

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('/<path:dummy>')
def fallback(dummy):
    return 'This one catches everything else'

path will catch everything until the end. More about the variable converters.