学習サイト:
https://flask.palletsprojects.com/en/1.1.x/tutorial/factory/
flaskチュートリアルでは、
アプリケーションのインスタンス作成を関数内で行うという、
"アプリケーションファクトリ"という考え方が用いられています。
関数で定義するということは、何からの処理で読んであげないといけないのですが、
チュートリあるでは、関数の呼び出しをせずに、
下記コードを書いたら、環境変数を設定してすぐに実行できるといいます。
実際に動かしてみると実行できるのですが、
なぜ「create_app」関数を呼び出してもいないのに実行できるのか
イメージがわきません。
どのたか教えていただけないでしょうか?
__init__.py
1import os 2 3from flask import Flask 4 5 6def create_app(test_config=None): 7 # create and configure the app 8 app = Flask(__name__, instance_relative_config=True) 9 app.config.from_mapping( 10 SECRET_KEY='dev', 11 DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'), 12 ) 13 14 if test_config is None: 15 # load the instance config, if it exists, when not testing 16 app.config.from_pyfile('config.py', silent=True) 17 else: 18 # load the test config if passed in 19 app.config.from_mapping(test_config) 20 21 # ensure the instance folder exists 22 try: 23 os.makedirs(app.instance_path) 24 except OSError: 25 pass 26 27 # a simple page that says hello 28 @app.route('/hello') 29 def hello(): 30 return 'Hello, World!' 31 32 return app
環境変数設定後、実行
set FLASK_APP=flaskr
set FLASK_ENV=development
flask run
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/19 05:10