一回目の起動時のみにテーブル作成及びデフォルト値のデータ挿入を実行させるように書きたいです。
下記は、サンプルですが、db.init_appの関数定義がなく、どう書くものでしょうか?db.init_app(app)の意味が気になっています。なぜ、わざわざcreate_app関数を定義してappをreturnさせて別で呼び出す必要があるのでしょうか?そもそも、これを初期化処理と読んでいいものでしょうか?
初期化処理は、だれもが書くような内容だと思うのでflaskでかかれたサンプルをご存知でしたら教えていただけると助かります。
run.py
from app import create_app if __name__ == "__main__": app = create_app() app.run()
app/init.py
from flask import Flask from flask_debugtoolbar import DebugToolbarExtension from flask.ext.sqlalchemy import SQLAlchemy # Import SQLAlchemy from flask.ext.mongoengine import MongoEngine # Import Mongoengine from flask.ext.admin import Admin from app import config # app setup db = SQLAlchemy() mongodb = MongoEngine() admin = Admin() toolbar = DebugToolbarExtension() def create_app(): app = Flask() app.config.config_from_object(config) #Initializing db.init_app(app) mongodb.init_app(app) admin.init_app(app) toolbar.init_app(app) # Import a module from app.module1.controllers import mod_app # Register blueprint(s) app.register_blueprint(mod_app) # Build the database: # This will create the database file using SQLAlchemy db.create_all() return app
引用元:
https://qiita.com/divider_kuro/items/c74514af9ea89f1b9793
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。