Werkzeugで遊ぼう! - とりあえず編

written by shn, on Feb 27, 2009 8:49:00 PM.

ザインに入信したので次はWerkzeugだ!

Werkzeugは小気味の良いWSGIのユーティリティ集で、やはりpocooタンが開発している。pocooタンかわいいよpocooタン
C#よりC++, MFCよりWTL, apacheよりnginxな男はDjangoよりWerkzeugを選ぶのである。

前置きはおいといて、まず開発支援系の機能から試していくことに。

run_simple

werkzeugのHTTPサーバを使った最小コードはこんな感じかしら。手元でテストする分には十分げ

wz_first.py

#! -*- coding:utf-8 -*-
from werkzeug import run_simple

class WSGIApplication(object):
    def __call__(self, environ, start_response):
        writer = start_response('200 OK', [('Content-Type', 'text/plain; charset=utf-8')])
        return ['Hello', 'הלו', 'こんにちわ']

def main():
    run_simple('localhost', 8080, WSGIApplication(), use_reloader=True)

if __name__ == '__main__':
    main()

use_reloader=Trueにすると、forkして、コードに変更がありしだい子プロセスを立ち上げなおす。

スクリプト

wekrzeug.scriptを使うと、コマンドラインからいろいろ出来る!

def main()
    from werkzeug import script

    action_runserver = script.make_runserver(WSGIApplication, use_reloader=True)
    action_shell = script.make_shell(lambda: {'app': WSGIApplication})
    script.run()

コマンドラインから、script.run()を呼び出したフレームのaction_xxxを呼び出せる。
例えば、$ python wz_first.py runserverすると、action_runserverさんが呼び出される。

ワースゴイヤ!

Leave a Reply