Flask 資料庫SQLAlchemy 基礎講解

2021-09-29 02:18:53 字數 2512 閱讀 5331

資料庫分為關係型資料庫和泛指型資料庫,典型的關係型資料庫sql有oracle、sqlserver、mysql等,泛指型資料庫nosql又分為用於儲存實時訊息的文件型資料庫mongodb、coachdb和用於儲存快取的鍵值對型資料庫redis、riak.

安裝sqlalchemy外掛程式:pip install flask_sqlalchemy匯入:from flask_sqlalchemy import sqlalchemy

連線資料庫格式(以mysql為例,連線不同資料庫有不同的格式要求,應具體情況具體分析):

mysql+pymysql://使用者名稱:密碼@資料庫ip:埠/資料庫名?charset=utf8

eg.sqlalchemy_database_uri='mysql+pymysql://root:123456@localhost:3306/myblog?charset=utf8'

定義資料庫模型(model)

通過定義乙個類來設計資料庫模型,完成資料表(包括字段、外來鍵、主鍵等)的設計,表的字段由db.colum類的例項來表示,字段型別用第乙個引數表示,常用的字段型別有integer、string、datatime、boolean,例子如下:

需要注意幾點:

(1)類與資料庫表列的對應關係是:類--->表,類屬性--->列,類例項物件--->行

(2)類名的小寫預設對應資料庫表名,也可以指定表明,__tablename__=『』表名

(3)所有的錶類都必須繼承db.model

(4)熟記欄位的幾個屬性:id、primary_key、unique、index、default

完成資料庫的對映工作:初始化、遷移、更新

在專案程式中完成了對資料庫的設計後,是時候更新到資料庫中去了,主要分三個步驟:

(1)初始化:flask db init,首次生成資料庫遷移檔案

(2) 遷移:flask db migrate,完成資料庫遷移的指令碼工作

(3)更新:flask db upgrade,完成資料庫的更新工作,此項操作如果資料庫有視覺化操作軟體的話,可以直接看到變化,如沒有的話通過輸入命令也可以查詢

資料庫操作:crud 增刪改查

(1)create增加:

通過類的例項物件建立記錄,新增新記錄到資料庫會話,提交資料庫會話,eg.

(2)read獲取:

從資料庫中獲取相關資料,有這樣的公式:《模型類》.query.《過濾方法》.《查詢方法》

過濾方法可以獲得更精確的查詢,主要有filter、filter_by(以關鍵字表示式的方式)

查詢方法主要包括all()、first()、one()、get()等,具體方法怎麼用自己查哈,這裡只是給出乙個知識框架

eg.user.query.filter_by(username='susan').first()

(3)update更新

直接賦值給字段屬性就可以改變字段值,然後呼叫db.session.commit()

(4)delete刪除

跟增加差不多,把add(),改為delete(),eg .

db.session.delete(user)

db.session.commit()

*注意:*利用會話機制session進行資料庫操作,db.sesssion.add(例項)將記錄新增到會話快取中,db.session.commit()將記錄提交到資料庫中去。

可以將crud的語句應用到檢視函式中去。

關係型資料庫最重要的就是表與表之間的關係,在設計資料庫的時候如果設計的好可以滿足大部分的功能需求,所以有必要學好這塊,資料庫關係有一對多、多對多、多對一

模型類不是一成不變的,發生如下情況時需要進行更新到資料庫中去:

操作方法:

先刪除再建立。db.drop_all()再用db.create_all()。優點:簡單直接,缺點:丟失資料庫中的所有資料

採用資料庫遷移工具alembic,使用該工具可以在不破壞資料的情況下更新資料庫表的結構。操作步驟如下:

pip install flask-migrate

from flask-migrate import migrate

(2)初始化遷移環境

在命令列下,輸入命令:flask db init

(3) 生成遷移指令碼

在命令列下,輸入命令:flask db migrate -m '描述資訊'

(4)更新資料庫

在命令列下,輸入命令:flask db upgrade

到此為止,flask框架資料庫有關於sqlalchemy的知識大概梳理了一遍,方便以後複習和查詢時快速上手!

Python 訪問資料庫練習 SQLAlchemy

正確使用orm的前提是了解關聯式資料庫的原理。安裝 pip install sqlalchemy 完整 coding utf 8 from sqlalchemy import column,string,create engine from sqlalchemy.orm import session...

Flask資料庫遷移

在開發過程中,需要修改資料庫模型,且還要在修改之後更新資料庫。最直接的 式就是刪除 舊表,但這樣會丟失資料。更好的解決辦法是使 資料庫遷移框架,它可以追蹤資料庫模式的變化,然後把變動應 到資料 庫中。在flask中可以使 flask migrate擴充套件,來實現資料遷移。並且整合到flask sc...

flask框架 資料庫

綜合案例 圖書管理系統 from flask import flask,render template,flash,redirect from wtforms import stringfield,submitfield from flask wtf import flaskform from fl...