0
app.py的代碼示例:爲什麼Flask-SQLAlchemy代碼塊執行兩次?
# imports here
app = Flask(__name__)
app.config.from_pyfile('app.cfg')
db.init_app(app)
with app.app_context():
if os.path.exists('database/example.db'):
print 'already exists'
else:
print 'database created'
db.create_all()
#routes here
if __name__ == '__main__':
app.run()
在初始負載,將打印「創建的數據庫」,然後「已經存在」。如果我在創建數據庫時再次加載它,「已存在」會打印兩次。
already exists
* Running on http://127.0.0.1:5000/
* Restarting with reloader
already exists
兩個部分的問題:
1)爲什麼與app.app_context()塊中執行兩次?
2)什麼是更好的方式來寫這個代碼?
正如輸出所示,它是自動代碼重新載入器,可以重新啓動您的代碼。它應該在應用程序運行時代碼發生更改時執行此操作,它只能在調試模式下啓用(也許應顯示'app.cfg')。但是,在數據庫已經存在的情況下,我真的不知道有什麼變化,所以沒有線索。 – burnpanck 2014-10-08 06:25:34