クエリパラメータではなくて、URLのパスにパラメータを入れ込むことがあると思いますが、それの実現方法。
http://..../user/12345
みたいなやつ。
まずは、パスの設定
__init__.py
from pyramid.config import Configurator
def main(global_config, **settings):
config = Configurator(settings=settings)
config.add_route('user', /user/{user_id})
これで
http://.../user/(パラメータ)を受け付けられるようになります。
次に、このパスパラメータを送るテンプレート(pt)
pathparam.pt
<a href="${request.route_url('user', user_id='12345')}">パラメータ固定</a>
<a href="${request.route_url('user', user_id=user_id)}">プログラムから動的に</a>
route_urlメソッドに_init_.pyで設定したパスパラメータの{user_id}を引数指定することでパラメータを渡すことができるようになります。
受け取るViewは
@view_config(route_name='user')
def func(request):
user_id = request.matchdict['user_id']