Flask資料庫基本操作 SQLAlchemy

2021-10-01 10:55:25 字數 2913 閱讀 4454

flask資料庫

d:使用擴充套件包flask-sqlalchemy來運算元據庫(增刪改查)

e:通過 python 物件來運算元據庫,在捨棄一些效能開銷的同時,換來的是開發效率的較大提公升

u:常用的sqlalchemy欄位型別

常用的sqlalchemy列選項

常用的sqlalchemy關係選項

①安裝擴充套件包及導包

安裝flask-sqlalchemy:pip install flask-sqlalchemy

如果連線的是mysql資料,需安裝mysqldb:pip install flask-sqlalchemy

導包:from flask_sqlalchemy import sqlalchemy

②配置相關資料庫的設定

#資料庫資訊設定
③建立連線資料庫的物件④定義模型類,繼承db.model定義資料庫的表名:tablename設定字段: 字段=db.column(db.欄位型別,字段選項)

例如:id = db.column(db.integer, primary_key=true)

name = db.column(db.string(64), unique=true)

設定關聯屬性: books = db.relationship(『book』, backref=『author』, lazy=『dynamic』)

給該模型類新增乙個屬性,第乙個引數為多類類名,通過這個屬性可以查詢一對多所有物件

第二個引數backref =』該類類名小寫『,是反向給多類申明乙個新屬性

第三個引數指定是lazy屬性,即何時載入資料,dynamic指的是在訪問屬性的時候,並沒有在記憶體中載入資料,而是返回乙個query物件, 需要執行相應方法才可以獲取物件,比如.all()

⑤無遷移式的建表和刪表

db.drop_all() 刪除該資料庫所有的表 db.create_all() 在該資料庫下建立所有模型類對映的表

增刪改查

增:①建立物件: b =book(name=『圖書』)

②把資料新增到使用者會話:db.session.add(b)

如果多個物件,使用db.session.add_all([b1,b2,b3])

③提交使用者會話到資料庫: db.session.commit()

刪:第一種方式:

①查出該物件: b=book.query.get(1)

②從使用者會話刪除該對物件: db.session.delete(b)

③提交使用者會話: db.session.commit()

第二種方式:

①查出物件直接刪除: book.query.get(1).delete()

②提交使用者會話: db.session.commit()

改:①查出該物件: b=book.query.get(1)

②修改物件屬性: b.name=『**』

③提交使用者會話: db.session.commit()

查:①無條件查詢:book.query.查詢執行器

②條件查詢:book.query.過濾器.查詢執行器

常用過濾器如下:

常用查詢執行器如下:

邏輯非,邏輯與,邏輯或

from sqlalchemy import not_,and_,or_

示例:user.query.filter(not_(user.name==『chen』)).all()

user.query.filter(and_(user.name!=『wang』,user.email.endswith(『163.com』))).all()

一對多,多對一關聯查詢

一對多

①先查詢出一類物件,例如author=author.query.get(1)

②根據我們設定的relationship屬性獲取這一類物件下的全部多類物件:

books=author.books (即該作者下全部書籍)

多對一:

①查詢出多類物件,例如book=book.query.get(2)

②根據我們設定的backref反向設定的屬性獲取該多類物件對應的一類物件:

author =book.author (即這本書所屬的作者)

flask資料庫遷移

d:在資料庫中建立模型類對映的資料庫表,如果需要修改資料庫模型,還要在修改之後更新資料庫,最好的解決的方法使用資料庫遷移框架flask-migrate

e:建立相關資料庫表,而且追蹤資料庫模式的變化,然後把變動應用到資料庫中,還可以回退版本。

u:遷移步驟:

SQL資料庫基本操作

1 建立表 create create table dba test 建立表,表名為dba test col1 number,col2 varchar2 10 第一列預設值是0 第二列不准許有空值 第一列預設值是0 第二列不准許有空值 2 檢索操作 select select 1 from 2 其中...

Flask資料庫操作

flask 資料庫主要是學習flask sqlalchemy安裝及連線 使用資料庫 資料庫的遷移,可以定乙個大概的學習目標,我之前是這麼定的 能夠理解 orm 工作原理以及其優缺點 能夠寫出在 flask 中連線 mysql 的配置項格式 ip,埠,資料庫 能夠使用 sqlalchemy 定義出關係...

flask資料庫操作

通過命令生成資料庫 必須先刪除在生成,不易維護 flask自帶遷移資料庫的框架 from flask script import manager 擴充套件db指令 flask script命令擴充套件包 需要安裝 from flask migrate import migrate,migrateco...