SQLModel:解放人类生产力的Python库

数据库 其他数据库
小伙伴们!今天我们来聊聊 Python 中的一个强大库——SQLModel。这货不是普通的 ORM(对象关系映射)库,它是基于 Pydantic 的,这意味着你可以用 Python 类来定义你的数据库模型,并且这些类会自动映射到数据库表。听起来是不是很酷?那就让我们开始吧!

小伙伴们!今天我们来聊聊 Python 中的一个强大库——SQLModel。这货不是普通的 ORM(对象关系映射)库,它是基于 Pydantic 的,这意味着你可以用 Python 类来定义你的数据库模型,并且这些类会自动映射到数据库表。听起来是不是很酷?那就让我们开始吧!

SQLModel 是什么?

SQLModel 是一个现代的 ORM 库,它让你可以用 Python 类来定义数据库模型,并且自动生成 SQL 代码。它结合了 Pydantic 的类型检查和 SQLAlchemy 的数据库操作能力,让你的代码既简洁又安全。

为什么选择 SQLModel?

  1. 类型安全:利用 Python 类型注解,减少运行时错误。
  2. 简洁性:用 Python 类定义模型,自动生成 SQL 语句。
  3. 灵活性:支持多种数据库,易于集成和扩展。

安装 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 仓库哦!


责任编辑:华轩 来源: 科学随想录
相关推荐

2022-09-27 21:26:35

CSSTransform

2014-12-14 14:43:31

中软JointForce

2013-04-26 16:14:09

视频会议MCU统一通信

2021-05-09 22:53:04

人工智能数据技术

2021-03-09 10:29:14

人工智能

2021-07-01 07:34:09

代码 Python 视频

2022-03-14 15:07:28

DockerJavaIdea

2016-02-23 11:39:47

Adobe数字化营销

2012-08-27 13:30:21

BYOD

2023-02-13 08:34:26

Linux键盘快捷键

2022-06-29 07:29:54

WeChatSync工具

2020-12-07 06:22:05

MyBatisPlus开发MP

2015-07-02 12:40:23

面试人类

2020-10-28 10:25:11

云端云计算云迁移

2016-07-14 14:12:11

华为

2023-02-02 15:10:33

自动化RPA

2021-02-04 13:00:40

树莓派Linux

2022-01-10 10:45:16

大数据大数据动向数据技术
点赞
收藏

51CTO技术栈公众号