Flask框架之八SQLAlchemy -orm
Flask框架之SQLAlchemy -orm
一、ORM
- SQL語句重負使用率不高,越複雜的SQL語句條件越多,程式碼越長。會出現很多相近似的SQL語句
- 很多SQL語句是在業務邏輯中拼出來的,如果有資料庫需要修改,就要去修改這些邏輯,很容易漏掉某些SQL語句的修改
- 寫SQL時容易忽略web安全問題
- 使用ORM的優點:
- 易用性:使用ORM做資料庫的開發可以有效的減少SQL語句,寫出來的模型也更加直觀
- 效能損耗小
- 設計靈活:可以輕鬆寫出來複雜的查詢
- 可移植性:SQLAlchemy封裝了底層的資料庫,實現支援多個關係型資料庫,包括MySQL,SQLite
二、使用SQLAlchemy
- 連線資料庫
- 建立Base基類
- 建立類,新增屬性,新增資料型別約束
- 建立session
- 新增建立例項新增資料
- 新增資料到資料庫
- 提交資料
三、SQLAlchemy資料的增刪改查
1.增加資料
def add_data():
user = User(新增屬性的資料)
session.add(user)
sesssion.commit()
2.刪除資料
def delete_data():
date = session.query(Food).first()
session.delete(date)
session.commit()
3.修改資料
def update_data():
data = session.query(Usre).filter(條件判斷).all()
data.屬性名 = xxx
session.commit()
4.查詢資料
def search_data():
data = session.query(Usre).filter(條件判斷).all()
print(data)
四、SQLAlchemy的常用型別
程式碼 | 型別 |
---|---|
Integer | 整形 |
Float | 浮點型別 |
Boolean | 傳遞True/False進去 |
DECIMAL | 定點型別 |
enum | 列舉型別 |
Date | 傳遞datetime.date()進去,如(2020 10 29) |
DateTime | 傳遞datetime.datetime()進去。如(2020 10 29 21 36 21) |
Time | 傳遞datetime.time()進去。如( 21 36 21) |
String | 字元型別,使用時需要指定長度,區別於Text型別 |
Text | 文字型別 |
LONGTEXT | 長文字型別 |
五、column常用引數和聚合函式
- 常用引數
引數 | 用法 |
---|---|
default | 預設值:當你設定了default=xxx的時候,你如果沒有傳遞這個資料,那麼資料庫會顯示你設定的這個值 |
nullable | 是否可空:nullable=False 表示不能為空 |
primary_key | 是否為主鍵 |
unique | 是否唯一: 當你設定了這個引數的時候,那麼統一列的資料不能相同,相同就報錯 |
autoincrement | 是否自動增長 |
onupdate | 更新的時候執行的函式 |
name | 該屬性在資料庫中的欄位對映 |
- 聚合函式
函式 | 意義 |
---|---|
func.count | 統計行的數量 |
func.max | 求最大值 |
func.min | 求最小值 |
func.avg | 求平均值 |
func.sum | 求和 |
相關文章
- Python之ORM框架SQLAlchemyPythonORM框架SQL
- 第三方ORM 之 SQLAlchemyORMSQL
- flask筆記:是flask.ext.sqlalchemy還是flask_sqlalchemyFlask筆記SQL
- flask_sqlalchemy 分頁FlaskSQL
- Flask中SQLAlchemy如何安裝?FlaskSQL
- Flask:sqlalchemy模組的使用FlaskSQL
- Python3 整合SQLAlchemy ORM 框架:實現MySQL 表初始化PythonORM框架MySql
- Python之Flask框架一PythonFlask框架
- Python如何匯入flask_sqlalchemyPythonFlaskSQL
- Python SQLALchemy框架PythonSQL框架
- 手擼ORM淺談ORM框架之Add篇ORM框架
- 手擼ORM淺談ORM框架之Update篇ORM框架
- 手擼ORM淺談ORM框架之Query篇ORM框架
- 手擼ORM淺談ORM框架之Delete篇ORM框架delete
- 手擼ORM淺談ORM框架之基礎篇ORM框架
- flask-sqlalchemy中使用cursor遊標FlaskSQL
- 靈活使用 SQLAlchemy 中的 ORM 查詢SQLORM
- flask分頁功能:基於flask-sqlalchemy和jinja2FlaskSQL
- ImportError: cannot import name ‘BaseQuery‘ from ‘flask_sqlalchemy‘ImportErrorFlaskSQL
- “造輪運動”之 ORM框架系列(二)~ 說說我心目中的ORM框架ORM框架
- 大白話說Python+Flask入門(六)Flask SQLAlchemy操作mysql資料庫PythonFlaskMySql資料庫
- Python庫之SQLAlchemyPythonSQL
- Flask框架(之六)藍圖和子域名Flask框架
- Python基礎知識之常用框架Flask!Python框架Flask
- Python教程系列之Flask框架的學習PythonFlask框架
- python的ORM技術:使用sqlalchemy操作mysql資料庫PythonORMMySql資料庫
- ORM框架之GreenDao3.0使用詳解(二)ORM框架
- Flask基本框架Flask框架
- 【flask框架】——flask-restful風格Flask框架REST
- Java ORM 框架指南JavaORM框架
- 自定義ORM框架ORM框架
- 如何修復使用 Python ORM 工具 SQLAlchemy 時的常見陷阱PythonORMSQL
- Flask框架從入門到精通之Session(九)Flask框架Session
- Flask框架從入門到精通之Response(七)Flask框架
- Flask框架從入門到精通之Request(六)Flask框架
- ORM框架之GreenDao3.0整合與註解(一)ORM框架
- 記SqlSugar ORM框架之找不到主鍵問題SqlSugarORM框架
- .NET 5 ORM 八大實用技巧 乾貨 - SqlSugar ORMORMSqlSugar