首页 > 数据库 >SQLAlchemy入门:详细介绍SQLAlchemy的安装、配置及基本使用方法

SQLAlchemy入门:详细介绍SQLAlchemy的安装、配置及基本使用方法

时间:2024-10-09 11:17:57浏览次数:10  
标签:SQLAlchemy 入门 数据库 ORM 会话 session User 安装

SQLAlchemy是一个流行的Python SQL工具包和对象关系映射(ORM)框架,它为开发人员提供了一种高效、灵活的方式来与数据库进行交互。本文将详细介绍SQLAlchemy的安装、配置及基本使用方法,并通过代码示例和案例分析,帮助新手朋友快速上手。
在这里插入图片描述

一、SQLAlchemy简介

SQLAlchemy由Mike Bayer创建,它提供了两种主要的组件:SQLAlchemy Core和SQLAlchemy ORM。SQLAlchemy Core是一个SQL表达式语言和数据库抽象层,而SQLAlchemy ORM则是一个建立在Core之上的对象关系映射器。

二、安装SQLAlchemy

在开始使用SQLAlchemy之前,需要确保已经安装了Python。SQLAlchemy可以通过pip命令进行安装:

pip install SQLAlchemy

三、连接到数据库

要使用SQLAlchemy ORM,首先需要创建一个数据库连接。SQLAlchemy支持多种数据库后端,包括SQLite、MySQL、PostgreSQL等。以下是一个使用SQLite数据库的示例:

from sqlalchemy import create_engine
engine = create_engine('sqlite:///example.db')

在这个示例中,我们使用 create_engine() 函数创建了一个SQLite数据库引擎,它将连接到名为 example.db 的SQLite数据库文件。

四、定义模型

在SQLAlchemy ORM中,模型通常是通过定义Python类来实现的,这些类继承自 sqlalchemy.ext.declarative.api.DeclarativeMeta。每个类对应于数据库中的一个表,类的属性对应于表中的列。

以下是一个简单的用户模型示例:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

在这个示例中,我们首先创建了一个 Base 类,它将作为所有模型类的基类。然后,我们定义了一个 User 类,它继承自 Base 类。__tablename__ 属性指定了数据库中对应的表名。idnameage 属性定义了表中的列。

五、创建表

在定义了模型之后,我们可以使用 Base.metadata.create_all() 方法来创建数据库表。

Base.metadata.create_all(engine)

六、创建会话

在SQLAlchemy ORM中,会话(Session)是用于与数据库进行交互的主要接口。会话允许您执行数据库操作,如插入、查询、更新和删除数据。

以下是一个创建会话的示例:

from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()

七、插入数据

在SQLAlchemy ORM中,要插入数据,首先需要创建模型类的实例,并将其添加到会话中。然后,可以使用会话的 commit() 方法将更改提交到数据库。

以下是一个插入数据的示例:

user = User(name='Alice', age=30)
session.add(user)
session.commit()

八、查询数据

在SQLAlchemy ORM中,要查询数据,可以使用会话的 query() 方法。query() 方法接受模型类作为参数,并返回一个查询对象。查询对象提供了多种方法来执行不同的查询操作。

以下是一些查询数据的示例:

# 查询所有用户
users = session.query(User).all()

# 查询特定条件的用户
user = session.query(User).filter_by(name='Alice').first()

# 查询并排序
users = session.query(User).order_by(User.age.desc()).all()

# 查询并限制返回数量
users = session.query(User).limit(5).all()

# 查询并偏移
users = session.query(User).offset(5).limit(5).all()

# 查询并使用原生SQL
users = session.query(User).filter("age > 25").all()

九、更新数据

在SQLAlchemy ORM中,要更新数据,可以使用会话的 query() 方法获取要更新的记录,然后修改记录的属性,并提交会话。

以下是一个更新数据的示例:

user = session.query(User).filter_by(name='Alice').first()
user.age = 31
session.commit()

十、删除数据

在SQLAlchemy ORM中,要删除数据,可以使用会话的 query() 方法获取要删除的记录,然后使用 delete() 方法删除记录,并提交会话。

以下是一个删除数据的示例:

user = session.query(User).filter_by(name='Alice').first()
session.delete(user)
session.commit()

十一、使用事务

在SQLAlchemy ORM中,可以使用会话来管理事务。会话提供了一个 begin() 方法来开始一个事务,以及一个 commit() 方法来提交事务。如果发生错误,可以使用 rollback() 方法来回滚事务。

以下是一个使用事务的示例:

session.begin()
try:
    user = User(name='Bob', age=25)
    session.add(user)
    session.commit()
except:
    session.rollback()
    raise

十二、关闭会话

在完成数据库操作后,应该关闭会话以释放资源。

session.close()

十三、结论

SQLAlchemy ORM是一个功能强大且灵活的工具,它允许我们使用Python类和实例来表示数据库表和记录。本文介绍了如何连接到数据库、定义模型、创建表、插入、查询、更新和删除数据、使用事务以及关闭会话。这些知识将帮助我们在Python应用程序中高效地使用SQLAlchemy ORM。

标签:SQLAlchemy,入门,数据库,ORM,会话,session,User,安装
From: https://blog.csdn.net/weixin_43856625/article/details/142781428

相关文章

  • Zotero 安装教程
    1.软件安装打开Zotero官网,点击左侧下载按钮。选择Custom选项:安装完后重启计算机,就可以启动并使用Zotero软件了。2.软件设置打开编辑下的高级选项,查看数据存储位置。如下图所示,数据默认存储在了C:\Users\故梦\Zotero里,将该文件夹拷贝出来,放到其他位置,我这里放到......
  • 网络安全小白入门难吗
    世上难的事情有很多,网络安全绝不是最难的那一梯队,但是也不简单。如果真的感兴趣认真学的话是一定可以学会的,但是如果只是嘴上说说不愿意付诸行动的话,那么你可能连网络安全的大门都找不到想要入门网络安全首先就是要选好方向,在这个圈子技术门类中,工作岗位主要有以下三个方......
  • Win10 安装 Redis 数据库
    一、Redis数据库介绍Redis是一个开源的高性能键值对(key-value)的非关系型数据库。它通常用作数据结构服务器,支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sortedsets)等。Redis以其出色的性能、低延迟和高吞吐量而闻名,非常适合用作数......
  • 在Ubuntu上通过源码安装OpenCV和OpenCVSharp
    OpenCVOpenCV(OpenSourceComputerVisionLibrary)是一个开源计算机视觉和机器学习软件库。以下是OpenCV的一些主要特性:主要特性功能丰富:OpenCV提供了超过2500个优化的算法,包括图像处理、特征检测、物体识别、面部识别、图像分割、运动分析等。跨平台:支持Windows、Linux......
  • 大数据-158 Apache Kylin 安装配置详解 集群模式启动
    点一下关注吧!!!非常感谢!!持续更新!!!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已更完)Kudu(已更完)Druid(已更完)Kylin(正在更新…)章节内容上节......
  • ThreeJS入门(099):THREE.ArcCurve 知识详解,示例代码
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,webgl,ThreeJS,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第100篇入门文章......
  • CentOS 8 停止维护后通过 rpm 包手动安装 docker
    根据Docker官方文档的指引,进入Dockerrpm包下载的地址,根据自己系统的架构和具体版本选择对应的路径这里我使用https://download.docker.com/linux/centos/7/x86_64/stable版本,根据docker官方的给出的安装命令选择性的下载对应的rpm包最终使用yum命令安装下载好的......
  • 笑傲江湖单机版安装教程+虚拟机一键端+GM+10职业单人副本
    今天给大家带来一款单机游戏的架设:笑傲江湖10职业单机版单人副本坐骑门徒新时装商完整任务。另外:本人承接各种游戏架设(单机+联网)本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。教程是本人亲自搭建成功的,绝对是完整可运行的,踩过的坑都给你们填上了。如果你......
  • 推荐!专业Substance 3D Painter v10.解锁版下载及安装 (3D绘画软件)
    AdobeSubstance3DPainter简称Pt,是一款由adobe公司新研发的3D绘画软件。Substance3DPainter具有前所未有的功能和工作流程改进,使为3D资产创建纹理变得比以往更容易。具体安装方式如下:下载地址:Substance3DPainterv10.解锁版下载1、解压后点击如下图运行2、选择安装......
  • STM32入门教程:身份证识别
    STM32入门教程:身份证识别身份证识别是一种常见的图像处理应用,利用STM32等嵌入式平台进行身份证识别可以实现快速、准确的身份信息提取。本文将详细介绍如何使用STM32进行身份证识别,并提供代码案例供参考。一、身份证识别原理身份证识别主要涉及图像处理和模式识别两个方面。......