web-dev-qa-db-ja.com

Python-Flaskデフォルトルートは可能ですか?

Cherrypyではこれを行うことができます:

@cherrypy.expose
def default(self, url, *suburl, **kwarg):
    pass

flask同等のものはありますか?

23
John Jiang

FlaskのWebサイトに、フラスコの「キャッチオール」ルートに関するスニペットがあります。 ここで見つけることができます

基本的に、デコレータは2つのURLフィルタをチェーンすることによって機能します。このページの例は次のとおりです。

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def catch_all(path):
    return 'You want path: %s' % path

それはあなたに与えるでしょう:

% curl 127.0.0.1:5000          # Matches the first rule
You want path:  
% curl 127.0.0.1:5000/foo/bar  # Matches the second rule
You want path: foo/bar
40
alemangui

シングルページアプリケーションにネストされたルートがある場合(例:www.myapp.com/tabs/tab1-Ionic/Angularルーティングで一般的)、次のように同じロジックを拡張できます。

@app.route('/', defaults={'path1': '', 'path2': ''})
@app.route('/<path:path1>', defaults={'path2': ''})
@app.route('/<path:path1>/<path:path2>')
def catch_all(path1, path2):
    return app.send_static_file('index.html')
0
Darien Pardinas