pyramidのいろいろな機能を使ったsimpleなアプリ
色々な機能を使ったシンプルなアプリの例
内容
リクエストと同時にくじを引きその結果でページを遷移
(くじをフォームのバリデーションととらえても)
(もしくは、何かrequest時の状態、サーバの状態、権限による分岐など)
使っている機能
- view_config(add_view)のcontext引数
- contextに渡す例外を自分で定義
- resource factory
- 複数のview_config
- custom_predicates
- rendererを自分で定義
(あとで詳しく)
実行結果
(gistの内容を変更した。これはgistで一つ前のコミットの時の実行結果)
$ wget localhost:6543/register -q -O - fail 0.0403390155663 $ wget localhost:6543/register -q -O - success 0.553231375114 $ wget localhost:6543/register -q -O - fail 0.114420215993 $ wget localhost:6543/register -q -O - success 0.896110223393 $ wget localhost:6543/register -q -O - success 0.587029556341 $ wget localhost:6543/register -q -O - fail 0.390734917634 $ wget localhost:6543/register -q -O - success 0.706551569701 $ wget localhost:6543/register -q -O - success 0.60645679603 $ wget localhost:6543/register -q -O - success 0.832991161114 $ wget localhost:6543/register -q -O - success 0.933130897955 $ wget localhost:6543/register -q -O - success 0.902503274727 $ wget localhost:6543/register -q -O - fail 0.291119759395
追記
出力内容も変えてみた。
URLの末尾で出力の形式が変わる
# json $ wget localhost:6543/confirm/json -q -O - {"status": "success", "n": 0.6269372619335825} # report(xml) $ wget localhost:6543/confirm/report -q -O - <xml> <status>fail</status> <result>0.317302</result> </xml>
実行結果
$ wget localhost:6543/register -q -O - <xml> <status>fail</status> <result>0.202816</result> </xml> $ wget localhost:6543/register -q -O - {"status": "success", "n": 0.5142000134395782} $ wget localhost:6543/register -q -O - {"status": "fail", "n": 0.27676892794598806} $ wget localhost:6543/register -q -O - <xml> <status>success</status> <result>0.957400</result> </xml> $ wget localhost:6543/register -q -O - <xml> <status>success</status> <result>0.833650</result> </xml>