ラベル flask-extensions の投稿を表示しています。 すべての投稿を表示
ラベル flask-extensions の投稿を表示しています。 すべての投稿を表示

2011年5月27日金曜日

DebugToolbarをFlaskにも

Flaskいいよー。Flask。
extensionsもガンガン増えてかなり色々なことができるようになりました。

今日のネタはDebugToolbarです。
ちょっとハマったりしたのでそのメモがわりに。
DebugToolbarはDjangoのextensionでもあるものらしく、
レスポンスタイムとかログとかHttpHeaderとか見れるすぐれもの。

Flaskでも使えるとなれば(Djangoでは使ったこと無いけど)これは試してみるしか

いつものようにeasy_install なり pipなりでflask-debugtoolbarをインストールしたらええやないか。

実行する最小セットは下記の通り。

from flask import Flask
#DebugToolbarをインポート
from flaskext.debugtoolbar import DebugToolbarExtension

app = Flask(__name__)
#パネルを登録
app.config['DEBUG_TB_PANELS'] = (
    'flaskext.debugtoolbar.panels.headers.HeaderDebugPanel',
    'flaskext.debugtoolbar.panels.logger.LoggingPanel',
    'flaskext.debugtoolbar.panels.timer.TimerDebugPanel',
)
#Debug用のシークレットキーを追加、デバッグモードON
app.config['SECRET_KEY'] = 'asd'
app.config['DEBUG'] = True

toolbar = DebugToolbarExtension(app)

@app.route('/')
def test():
    app.logger.info("hello")
    return ""

if __name__ == "__main__":
    app.run()

これでローカルホストからは右にデバッグ用の怪しいボタンが出てくるので、
押すと色々なデバッグ情報が見れるようになる。
自分の環境ではflaskがurl_ruleっていう関数がねーみたいなエラーがでたので、
flaskを最新版(0.7)に換えたらOKでした。

こういうのが増えてくると開発しやすくなりますねー。

2011年3月15日火曜日

Flask-Script

みなさんFlaskしてますか。
Flask相変わらず良いですね。
extensionの数も順調に増えていて良いですね。
mongoだのcouchだのの単語がみえてnosqlもバッチリですね。

ところでdjangoのmanage.py便利ですよね。
Flaskでもrunserverとかshellとかやりたい。
そんな時にはflask extensionsにあるFlask-Scriptですよ。

インストールはいつもの通り
easy_installなりpipなりでflask-scriptとしてください。

Webアプリ側はこんな感じ(applicaiton.py)
#web application
from flask import Flask
from flask import jsonify

app = Flask(__name__)

@app.route('/spam')
def spam():
    return jsonify(res='ok')

if __name__ == "__main__":
    app.run()


んでflask-script側。(manage.py)
#script
from flaskext.script import Manager
from application import app 
manager = Manager(app)

#manage.py にhelloコマンドの追加
@manager.command
def hello():
    print 'hello'

if __name__ == "__main__":
    manager.run()

managerにアプリ登録してやるだけです。

あとは
$python manage.py runserver
でサーバ起動とかできます。
$python manage.py shell
でインタラクティブシェル起動できます。

@manager.commandで独自コマンドも簡単に追加できるので重宝しそうです。

optionパーサも組み込まれているみたいなので、
applicationの起動に色々処理を追加したい場合などは使ってみると良いと思います。

詳細はこちらです。
http://packages.python.org/Flask-Script/