Flask Quickstartを真面目に読んで見る・3
URL Building
Flaskにはroute()デコレータで登録された関数向けのURLを生成するurl_for()関数が用意されています。 url_for()関数は、関数名を第1引数に取り、必要であればURLパラメータをキーワード引数として指定してやります。
Quickstartのサンプルコードをそのまま引用します。
>>> from flask import Flask, url_for >>> app = Flask(__name__) >>> @app.route('/') ... def index(): pass ... >>> @app.route('/login') ... def login(): pass ... >>> @app.route('/user/<username>') ... def profile(username): pass ... >>> with app.test_request_context(): ... print url_for('index') ... print url_for('login') ... print url_for('login', next='/') ... print url_for('profile', username='John Doe') ... / /login /login?next=/ /user/John%20Doe
URL buildingのメリットは、
- Pythonコード中にURLをハードコーディングせずに済む。
- Unicodeや特殊文字を透過的に扱ってくれる。
- アプリケーションがルートURLに置かれていなくても、url_for()関数が適切なURLを生成してくれる。
だそうです。ちなみに、透過性の意味ですが、ユーザが技術的な細かいことを気にせずに済む、といった意味だそうです。
結局逐字訳みたいになってきましたが、英語の勉強にもなるので一石二鳥かなと思います。