1
我注意到大多數從燒瓶訪問mysql的例子都提示使用一個叫init_app(app)
的插件。從燒瓶內訪問mysql
我只是想知道爲什麼這樣做,而不是在代碼中某處使用mysql connector
,因爲您需要它?
瓶子是否在要求的生命週期內完成了更好的資源管理?
我注意到大多數從燒瓶訪問mysql的例子都提示使用一個叫init_app(app)
的插件。從燒瓶內訪問mysql
我只是想知道爲什麼這樣做,而不是在代碼中某處使用mysql connector
,因爲您需要它?
瓶子是否在要求的生命週期內完成了更好的資源管理?
使用軟件包如flask-mysql
或Flask-SQLAlchemy
,它們提供了有用的默認值和額外的幫助程序,可以更輕鬆地完成常見的CRUD任務。
所有這樣的包都擅長處理對象之間的關係。您只需創建對象,然後對象包含需要處理數據庫的所有函數和幫助程序,您不必親自實現此類代碼,也無需擔心查詢的性能。我曾在一個Django項目上工作(我相信Flask的理論是相似的),它的ORM真的很棒,我只需要編寫Models
並封裝業務邏輯。所有CRUD命令都由內置的ORM處理,作爲開發人員我們不擔心SQL語句。
另一個好處是它使數據庫遷移變得更容易。您可以通過最少的代碼修改將其從MySQL切換到PostgresSQL,從而加快開發速度。
如果通過像sqlalchemy這樣的ORM抽象數據庫訪問,最好設置一次,那麼可以使用'init_app'。如果你使用直接的sql查詢,你可以把邏輯放在你的視圖中,雖然它不是很乾。 Flask還提供了一些[hooks](http://flask.pocoo.org/docs/0.12/reqcontext/#callbacks-and-errors)用於在視圖之前和之後打開和關閉數據庫連接。 – alexpeits
如果你想把它放在答案中,我會給你信用!謝謝(你的)信息! – Hortitude