1、flask-sqlalchemy
是乙個為 flask 應用增加 sqlalchemy 支援的擴充套件。它致力於簡化在 flask 中 sqlalchemy 的使用。2、sqlalchemy 是目前python中最強大的 orm框架, 功能全面, 使用簡單。
orm優缺點使用,首先,安裝兩個依賴包優點
1、有語法提示, 省去自己拼寫sql,保證sql語法的正確性
2、orm提供方言功能(dialect, 可以轉換為多種資料庫的語法), 減少學習成本
3、物件導向, 可讀性強, 開發效率高
4、防止sql注入攻擊
5、搭配資料遷移, 更新資料庫方便
缺點
1、需要語法轉換, 效率比原生sql低
2、複雜的查詢往往語法比較複雜 (可以使用原生sql替換)
主要配置:
配置項說明
sqlalchemy_database_uri
設定資料庫的連線位址
sqlalchemy_binds
訪問多個資料庫時, 用於設定資料庫的連線位址
sqlalchemy_echo
是否列印底層執行的sql語句
sqlalchemy_record_queries
是否記錄執行的查詢語句, 用於慢查詢分析, 除錯模式下自動啟動
sqlalchemy_track_modifications
是否追蹤資料庫變化(觸發鉤子函式), 會消耗額外的記憶體
sqlalchemy_engine_options
設定針對 sqlalchemy本體的配置項
拓展:
python2中資料庫客戶端:mysqldb
python3中資料庫客戶端:pymysql
如果報錯:modulenotfounderror: no module named 'mysqldb'
解決方案1:python2和python3資料庫包相互轉換:
在**執行之前(在工程檔案中配置到__init__檔案裡),
加上**:pymysql.install_as_mysqldb()
解決方案2:mysql+pymysql:// 修改協議,只使用python3的資料庫包
from flask import flask
from flask_sqlalchemy import sqlalchemy
import pymysql
# python2和python3資料庫包相互轉換
# pymysql.install_as_mysqldb()
# 2.新增資料庫連線配置資訊
# 單個資料庫連線資訊
"sqlalchemy_database_uri"]=
"mysql+pymysql:"
# 多個資料庫連線資訊
# 關閉資料庫修改跟蹤操作 【提高效能】
"sqlalchemy_track_modifications"]=
false
# 開啟輸出底層執行sql語句
"sqlalchemy_echo"]=
true
# 開啟**自動提交功能 [不推薦開啟]
# db.session.commit()
# db.session.rollback()
# 3.建立資料庫物件
print
(db)
'/')
defhello_world()
:return
'hello world!'
if __name__ ==
'__main__'
:true
)
from flask import flask
from flask_sqlalchemy import sqlalchemy
from settings import config_dict
# 暴露成全域性變數,目的:方便別的模組使用db物件
# 方案2:
db = sqlalchemy(
)def
(config_name)
:"""
:param config_name: 配置名稱
"""# 2.先讀取配置類中配置資訊
config_class = config_dict[config_name]
# 3.再讀取環境變數中配置資訊
"config"
, silent=
true
)# 懶載入,延遲關聯
"dev"
)print
(db)
'/')
defhello_world()
:return
'hello world!'
if __name__ ==
'__main__'
:true
)
flask框架 資料庫
綜合案例 圖書管理系統 from flask import flask,render template,flash,redirect from wtforms import stringfield,submitfield from flask wtf import flaskform from fl...
flask框架3(資料庫ORM)
flask sqlalchemy 配置 其他配置 使用class user db.model tablename user id db.column db.integer,primary key true,autoincrement true name db.column db.string 50 ...
Flask資料庫遷移
在開發過程中,需要修改資料庫模型,且還要在修改之後更新資料庫。最直接的 式就是刪除 舊表,但這樣會丟失資料。更好的解決辦法是使 資料庫遷移框架,它可以追蹤資料庫模式的變化,然後把變動應 到資料 庫中。在flask中可以使 flask migrate擴充套件,來實現資料遷移。並且整合到flask sc...