SQLModel:解放人類生產力的Python庫
小伙伴們!今天我們來聊聊 Python 中的一個強大庫——SQLModel。這貨不是普通的 ORM(對象關系映射)庫,它是基于 Pydantic 的,這意味著你可以用 Python 類來定義你的數據庫模型,并且這些類會自動映射到數據庫表。聽起來是不是很酷?那就讓我們開始吧!

SQLModel 是什么?
SQLModel 是一個現代的 ORM 庫,它讓你可以用 Python 類來定義數據庫模型,并且自動生成 SQL 代碼。它結合了 Pydantic 的類型檢查和 SQLAlchemy 的數據庫操作能力,讓你的代碼既簡潔又安全。
為什么選擇 SQLModel?
- 類型安全:利用 Python 類型注解,減少運行時錯誤。
- 簡潔性:用 Python 類定義模型,自動生成 SQL 語句。
- 靈活性:支持多種數據庫,易于集成和擴展。
安裝 SQLModel
要開始使用 SQLModel,首先需要安裝它。打開你的終端,運行以下命令:
pip install sqlmodel定義模型
定義一個模型就像定義一個 Python 類一樣簡單。我們來定義一個 User 模型,包含 id, username 和 email 字段。
from sqlmodel import SQLModel, Field, String, Integer
class User(SQLModel, table=True):
id: int = Field(default=None, primary_key=True)
username: String = Field(...)
email: String = Field(...)這里,Field 函數用于定義字段的額外屬性,比如是否為主鍵。
創建數據庫引擎
接下來,我們需要創建一個數據庫引擎。SQLModel 支持多種數據庫,這里我們以 SQLite 為例。
from sqlalchemy import create_engine
engine = create_engine("sqlite:///./test.db")
SQLModel.metadata.create_all(engine)增刪查改操作
插入數據
我們來插入一個新用戶。
from sqlmodel import Session
def create_user(username: str, email: str):
session = Session(engine)
new_user = User(username=username, email=email)
session.add(new_user)
session.commit()
session.refresh(new_user)
return new_user查詢數據
查詢操作也很直觀。
def get_users():
session = Session(engine)
users = session.query(User).all()
return users
def get_user_by_id(user_id: int):
session = Session(engine)
user = session.query(User).filter(User.id == user_id).first()
return user更新數據
更新操作同樣簡單。
def update_user_email(user_id: int, new_email: str):
session = Session(engine)
user = session.query(User).filter(User.id == user_id).first()
if user:
user.email = new_email
session.commit()
return user
return None刪除數據
刪除操作也是必不可少的。
def delete_user(user_id: int):
session = Session(engine)
user = session.query(User).filter(User.id == user_id).first()
if user:
session.delete(user)
session.commit()
return True
return False以上就是 SQLModel 的基本介紹和一些增刪查改操作的示例。希望這能幫助你更好地理解和使用 SQLModel。如果你想要更深入地了解 SQLModel,記得查看它的官方文檔和 GitHub 倉庫哦!
























