Calmery.me

みっかぼうずにならないようがんばる

Pyramidでルーティング

Pyramidのインストール - Calmery.me で Pyramid を導入したので,次はルーティングを行い処理を分けてみる.

from pyramid.config import Configurator
from pyramid.response import Response
from pyramid.view import view_config
from waitress import serve

@view_config(route_name='home')
def index(request):
    return Response("home")

@view_config(route_name='hello')
def hello(request):
    return Response("hello")

if __name__ == '__main__':
    config = Configurator()
    config.add_route('home', '/')
    config.add_route('hello', '/hello')

    config.scan()

    app = config.make_wsgi_app()
    serve(app, host='0.0.0.0')

Pyramid チュートリアル — Pyramid Tutorial for PyCon JP Sprint 1.0 documentation によると,

Configurator の add_route でルートを追加します。 第一引数がルートの名前( route_name ) で、第二引数がURLのパターンです。
また、さきほどと違い、 View の登録を view_config デコレータで行っています。 このデコレータをつけておくと、 Configurator が scan したときに、その関数が add_view されます。

ということだ.
要は view_config デコレータと Configurator の add_route を使って紐付けちゃうよってことらしい.

あとは前回と同じように動かし,
localhost:8080
localhost:8080/hello
を見てみる.

ちなみに,ポートは 8080 となっているみたい.
変更するには serve 関数に引数で番号を渡す.

serve(app, host='0.0.0.0', port='80')
$ python routing.py
serving on http://0.0.0.0:80