nodemonを使ってFlaskなWebアプリを自動でリロード
·2 分で読めます
最近のWebアプリケーションフレームワークだと、「開発している時はファイルの変更を検知して自動でアプリを再起動する」みたいな機能がある。PythonのFlaskで開発している場合は
#!/usr/bin/env python
from flask import Flask
app = Flask(__name__)
app.config.update({'DEBUG': True })
@app.route('/')
def root():
return "Hello world!"
if __name__ == '__main__':
app.run()というコードを
$ python main.pyのように実行していると
* Running on http://127.0.0.1:5000/
* Restarting with reloaderとなって自動リロードが有効になる。ただ、これってSyntax Errorが出る状態でファイルを保存してしまうとpythonのプロセス自体がそのままお亡くなりになるので、自分でコマンド叩いて起動し直さないといけない。
そこでnodemon。nodemonを使えばファイルの更新チェック自体はnodemonが行うため、Syntax Errorなコードを保存しても修正すればもう一度勝手にリロードしてくれる。
nodemonの使い方は簡単で
$ npm install -g nodemonして
$ nodemon --exec python main.pyな感じで起動してやる。ただ、nodemonを使う場合は
app.run()
↓
app.run(use_reloader=False)のようにFlaskでの自動リロードを無効にしてやる必要がある。
その他にも
- コンソールから rs って入力しても再起動できたり
- 変更検知の除外対象のファイルを指定できたりする
のが便利でnodemonはけっこう気に入っている。
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (17件) を見る
関連記事
Python3に対応したtomahawk 0.7.0をリリース
2014-03-03
Pythonで開発されている有名なサービス
2014-01-18
traceモジュールを使ってPythonプログラムの挙動を把握する
2013-07-21