之前我們講了許多關于sqlalchemy的文章,今天就為大家講講flask_sqlalchemy的使用!在使用flask_sqlalchemy之前,請確定安裝了flask_sqlalchemy,安裝代碼:
pip install flask_sqlalchemy
flask_sqlalchemy用法與sqlalchemy類似,兩者主要差別是sqlalchemy獨立于flask使用。
首先,我們先建立一個flask項目,并命名為 flask_sqlalchemy_demo

建立完flask項目後,它會自動生成如下代碼
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
接着,我們從flask_sqlalchemy中導入SQLAlchemy并執行個體化,代碼如下(注意:導入的SQLAlchemy跟我們之前講的sqlalchemy不一樣,我們現在導入的SQLAlchemy是一個類,之前所講的sqlalchemy是一個包)
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
實力化db對象後,我們再建立一個User模型,在建立User模型前,我們要先做好資料庫相關配置,不然flask項目怎麼與資料庫相連?是吧!我們就先做好資料庫配置,代碼如下:
DIALCT = "mysql"
DRIVER = "pymysql"
USERNAME = "root"
PASSWORD = "admin"
HOST = "127.0.0.1"
PORT = "3306"
DATABASE = "flask_sqlalchmy_demo"
DB_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALCT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)
app.config["SQLALCHEMY_DATABASE_URI"] = DB_URI
資料庫連接配接和sqlalchemy連接配接資料庫代碼一樣,定義好資料庫連接配接後,我們就可以定義模型了(注意:模型繼承的類是db.Model,而不是Base,資料類型及列屬性不用從sqlalchemy導入,直接從db導入即可),代碼如下:
class User(db.Model):
__tablename__ = "user"
id = db.Column(db.Integer , primary_key=True , autoincrement=True)
name = db.Column(db.String(50) , nullable=False)
建立模型後,我們讓它映射到資料庫中,之前我們用sqlalchemy是Base.create_all(),現在我們用flask_sqlalchemy,其代碼如下:
db.create_all()
運作建立資料庫代碼,然後 show tables檢視是否映射到資料庫中。運作代碼截圖如下:
OK,資料表已成功映射到資料庫中,下面我們再講講flask_sqlalchemy簡單增删查改操作,因為我之前講過關于sqlalchemy資料操作的文章《使用sqlalchemy對資料庫表進行增删查改操作》!
添加資料
user1 = User(name = "jack")
user2 = User(name = "bob")
db.session.add_all([user1,user2])
db.session.commit()
結果如下:
查詢資料
results = User.query.all()
print(results)
結果如下
修改資料(将name為jack修改成blue)
result = User.query.filter(User.name == "jack").first()
result.name = "blue"
db.session.commit()
結果如下
删除資料(将name為bob的資料删除)
result = User.query.filter(User.name == "bob").first()
db.session.delete(result)
db.session.commit()
結果如下