AT's Blog

趣味のプログラミング、ギター、音楽とかとか

Flask Quickstartを真面目に読んで見る・2

Werkzeug

ヴェルクツォイクって読むそうです。

qiita.com

ドイツ語で「工具」という意味で、公式サイト曰くPython WSGI Utility Libraryとのこと。

Welcome | Werkzeug (The Python WSGI Utility Library)

WSGI周りの処理は、FlaskではなくWerkzeugが担っていたんですね。 Werkzeug単体でも遊べそうです。

thinkami.hatenablog.com

Unique URLs / Redirection Behavior

下記のサンプルコードを実行してみるとわかりますが、

@app.route('/projects/')
def projects():
    return 'The project page'

@app.route('/about')
def about():
    return 'The about page'

“/projects"のように末尾スラッシュを省いてアクセスすると、 ”/projects/“のように末尾スラッシュを付加したURLにリダイレクトされます。 一方、”/about/“のように末尾スラッシュを付加したURLにアクセスすると、 404 Not Foundが返ってきます。

これはFlaskの仕様ですが、ApacheなどのWebサーバも同様の振る舞いをします。 試しに"https://www.google.co.jp/intl/ja/about"と末尾スラッシュを省いたURLにアクセスすると、 末尾スラッシュが付加されたURLにリダイレクトされるのがわかります。

ちなみにこの末尾スラッシュは、Web屋さんの間ではトレイリングスラッシュと英語で呼ぶみたいです。

ho-plus.com

トレイリングスラッシュの自動付加は、 検索エンジンが同じページを2回(スラッシュあり/なしで)インデックスするのを防ぐ効果があるそうです。