☆☆ 新着記事 ☆☆

2018年10月13日土曜日

Flask開発環境 Debug Mode -Errorになる例も


1. Development Mode

(1) ファイル名: test.py

# coding: utf-8
from flask import Flask
app = Flask(__name__)
@app.route('/')
@app.route('/home')
def home():
    return "<h1>Home Page</h1>"

@app.route('/about')
def about():
    return "<h1>About Page</h1>"

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

(2)実行(cmd)
>> set  FLASK_APP = ファイル名(○○○.py)
>> flask run
(mac, linuxはsetの代わりにexport)

**注意:
set FLASK_APP(スペース)=(スペース) test01.pyのように(スペース)を入れると、
Error: Could not locate a Flask application. というエラーになる。
スペースを入れないことが大事。
set FLASK_APP=test01.py

これだと、Production環境で、pyファイルを変更しても、ローカル・サーバーからログオフ(ctl+C)
しないと変更が反映されない。

そこで。
 
>> set  FLASK_APP = ファイル名(○○○.py)
>> set  FLASK_DEBUG = 1 // 環境変数の設定を追加。
>> flask run

とする。 すると、以下のメッセージが表示され、いちいちログ・オフ、ログ・インをしなくても
変更が反映されるようになる。

* Serving Flask app "t
* Environment: product
  WARNING: Do not use
  Use a production WSG
* Debug mode: on
* Restarting with stat
* Debugger is active!

コマンド・モード(window: setコマンド、mac:exportコマンド)でpyアプリを立ち上げず
app.run()を利用する場合、app.runにdebug=True, 又は、 debug=1 の引数を与えることで、
debug mode(Werkzeug Debugger)でアプリを起動することが出来る。

if __name__ == '__main__':
    app.run(debug=True)

とすると、debug modeになる。

この場合、ファイルをクリックするだけで、アプリが起動できるので便利。

尚、debug modeであれば、python アプリの変更は、リロードで自動更新できるが、bottleやflaskなどのフレームワークを利用し、htmlと連携させている場合、debugモードでも、htmlの変更は、pyアプリをリロードしただけでは、自動反映されない。



0 件のコメント:

コメントを投稿