日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Flask使用Flask-SQLAlchemy操作MySQL数据库

發布時間:2023/12/9 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask使用Flask-SQLAlchemy操作MySQL数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.jianshu.com/p/6ae0d30a5539

?

?

前言:

Flask-SQLAlchemy是一個Flask擴展,簡化了在Flask程序中使用SQLAlchemy的操作。SQLAlchemy是一個很強大的關系型數據庫框架,支持多種數據庫后臺。SQLAlchemy提供了高層ORM,也提供了使用數據庫原生SQL的低層功能。

學習了Flask-SQLAlchemy下MySQL的配置和增刪改查,供初學者作為參考。(python3+flask)


一、pip安裝擴展庫

>>>pip3 install flask-sqlalchemy

>>>pip3 install flask-mysqldb


二、配置并初始化數據庫

SQLALCHEMY_DATABASE_URI ,配置使用的數據庫URL,而配置MySQL的URL格式為:

mysql://username:password@hostname/database

SQLALCHEMY_TRACK_MODIFICATIONS?,設置成True(默認情況),Flask-SQLAlchemy 將會追蹤對象的修改并且發送信號。


三、創建數據庫


四、定義模型

1、最常使用的SQLAlchemy列選項

primary_key? ? | 如果設為True,這列就是表的主鍵

unique? ? ? ? ? ? ? ?| 如果設為True,這列不允許出現重復的值

index? ? ? ? ? ? ? ? ? | 如果設為True,為這列創建索引,提升查詢效率

nullable? ? ? ? ? ? ? | 如果設為True,這列允許使用空值,False則不允許使用空值

default? ? ? ? ? ? ? ? | 為這列定義默認值

2、一對多關系

添加到Variable模型中的env_id列被定義為外鍵,就是這個外鍵建立起了關系。

傳給db.ForeignKey()的參數'environments.id'表明,這列的值是environments.id表中行的id值。

3、關系的面向對象視角

添加到Environments模型中的variable屬性代表這個關系的面向對象視角。對于一個Environments類的實例,其variable屬性將返回與角色相關聯的用戶組成的列表。

db.relationship()的第一個參數表明這個關系的另一端是哪個模型。

db.relationship()的backref參數向Environments模型中添加一個variable屬性,從而定義反向關系。

db.relationship()的lazy=dynamic參數表明:不加載記錄,但提供加載記錄的查詢。


五、數據庫操作

1、創建表

>>> db.create_all()

2、刪除表

>>> db.drop_all()

3、插入行

#將variable添加到會話中

>>>db.session.add(variable)

#commit()方法提交會話

>>>db.session.commit()

4、 查詢數據

(1)all(查詢全部數據)

Environments.query.all()

(2)filter_by查詢(精確查詢)

Environments.query.filter_by(id=id).first()

(3)join(聯表一對多查詢)

Variable.query.filter_by(env_id=env_id,id=id).join(Environments,Variable.env_id == Environments.id).first_or_404()

(4)count(返回查詢結果的數量)

Environments.query.filter_by(id=id).count()

5、刪除數據

db.session.delete(variablelists)

db.session.commit()

6、刪除多條數據

variablelists= Variable.query.filter_by(env_id=env_id).all()

for var in variablelists:

????db.session.delete(var)

db.session.commit()


以上,希望對你有所幫助~



作者:小喜_ww
鏈接:https://www.jianshu.com/p/6ae0d30a5539
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

?

總結

以上是生活随笔為你收集整理的Flask使用Flask-SQLAlchemy操作MySQL数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。