pyramidでhello world (light weight)
pyramidは、flaskのように、1ファイルで完結する1ファイルアプリケーションを書くことができます。
また、規模の大きな開発のために、複数のモジュールに切り分けて記述することも可能です。
今回は1ファイルでの、pyramidアプリケーションでhello worldを表示するところまでを行います。
agenda
今回作るのは単にhello worldと表示するだけのアプリケーションです。
動的な機能をまったく加えていないので、静的なhtmlを表示するのと何ら代わりがありません。
以下の手順に分けて説明します。
- install
- setup
- coding
install
pip などを使いましょう。
(注意:詳細は後述しますが、現在pipでバージョン指定なしで入るpyramidのバージョンは1.3です。1.3と1.2では、デプロイまわりのコマンドのインターフェイスが異なっています。
ただし、今回の内容(1ファイルアプリケーション)では違いがありません。)
pip install pyramid # 1.3が入る
setup
ファイルを作るだけなのでsetupは特に必要ありません。
coding
以下のようなファイルを作成します。
# helloapp.py # -*- coding:utf-8 -*- from pyramid.config import Configurator from wsgiref.simple_server import make_server from pyramid.view import view_config from pyramid.response import Response @view_config(route_name="hello") def hello_view(request): return Response("hello anyone.") if __name__ == '__main__': # configuration settings settings = {} # configuration setup config = Configurator(settings=settings) config.add_route("hello", "/") # hello viewを"/"に割り当てる config.scan() #これで設定が有効になる。 # serve app app = config.make_wsgi_app() print "localhost:4567" server = make_server('0.0.0.0', 4567, app) server.serve_forever()
少しだけ上のファイルの説明をします。
- hello_viewというview関数(view callable)を定義してます。
- 単に"hello anyone"というhtmlを返すだけの関数です。
- view_configでhelloというroute_nameをつけています。
- __main__の中で、config.add_routeを行い"/"というパスにhello_viewを紐つけてます
- この時点では、設定は有効になっていません
- config.scan()を呼び出し設定を有効にしています。
このアプリケーションを起動する方法は、通常のpythonスクリプトを起動するのと同様にpythonコマンドに渡してあげるだけです。
$ python helloapp.py localhost:4567 localhost - - [14/Jan/2012 17:01:48] "GET / HTTP/1.1" 200 13 localhost - - [14/Jan/2012 17:01:48] "GET /favicon.ico HTTP/1.1" 404 164 localhost - - [14/Jan/2012 17:01:48] "GET /favicon.ico HTTP/1.1" 404 164
next
公式ドキュメントにも1ファイルアプリケーションのチュートリアルがあります。参照してください。
http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/single_file_tasks/single_file_tasks.html