Python 数据库访问与ORM框架——打造高效开发利器

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
简介: Python 作为一门广泛使用的编程语言,其在数据库访问方面也有着较为成熟的解决方案,其中ORM框架更是成为了开发者们的首选。本文将介绍 Python 中数据库访问和 ORM 框架的基本概念,以及如何使用 SQLAlchemy 这一优秀的 ORM 框架进行开发。

数据库访问
在 Python 中,访问数据库需要使用相应的驱动程序,常见的有 MySQLdb、psycopg2 和 cx_Oracle 等。使用这些驱动程序,我们可以通过 Python 连接到数据库并执行 SQL 语句进行数据的增删查改等操作。
例如,我们可以使用 MySQLdb 驱动连接到 MySQL 数据库,并对其中的数据进行操作:
Copy Code
import MySQLdb

连接到 MySQL 数据库

conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test')

创建游标对象

cursor = conn.cursor()

执行 SQL 语句

sql = 'SELECT * FROM users'
cursor.execute(sql)

获取所有记录

results = cursor.fetchall()

输出结果

for row in results:
print(row)

关闭游标和连接

cursor.close()
conn.close()
ORM 框架
ORM(Object-Relational Mapping)框架是一种将对象模型和关系数据库之间的映射进行转换的技术,将数据库中的表映射为 Python 中的类,表中的行映射为类的实例,从而使开发者可以通过对象的方式操作数据库,而无需直接编写 SQL 语句。
Python 中最著名的 ORM 框架就是 SQLAlchemy,它提供了丰富的功能和灵活的配置,支持多种数据库(包括 MySQL、PostgreSQL、SQLite 等),被广泛应用于各种 Python Web 开发框架中。
下面是使用 SQLAlchemy 进行数据库操作的示例:
Copy Code
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

创建数据库引擎

engine = create_engine('mysql://root:password@localhost/test')

创建 Session 类型

Session = sessionmaker(bind=engine)

创建 Base 类

Base = declarative_base()

定义 User 类

class User(Base):
tablename = 'users'

id = Column(Integer, primary_key=True)
name = Column(String(50))
age = Column(Integer)

创建 Session 实例

session = Session()

查询所有用户

users = session.query(User).all()
for user in users:
print(user.id, user.name, user.age)

添加一个新用户

new_user = User(name='Tom', age=20)
session.add(new_user)
session.commit()

删除一个用户

delete_user = session.query(User).filter_by(name='Tom').first()
session.delete(delete_user)
session.commit()

关闭 Session

session.close()
通过 SQLAlchemy,我们可以使用类似于操作 Python 对象的方式来操作数据库,大大简化了开发过程,并提高了开发效率。
结语:
Python 数据库访问和 ORM 框架是 Python 开发中必不可少的技术之一,掌握这些技能可以使我们更加高效地进行开发,从而打造出更加优秀的应用。希望本文对读者有所帮助。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
854 7
|
7月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
621 2
|
7月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
522 0
|
9月前
|
存储 监控 算法
淘宝买家秀 API开发实录Python(2025)
本文讲述了作者在电商开发领域,尤其是对接淘宝买家秀 API 接口过程中所经历的挑战与收获。从申请接入、签名验证、频率限制到数据处理和实时监控,作者分享了多个实战经验与代码示例,帮助开发者更高效地获取和处理买家秀数据,提升开发效率。
|
8月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
904 7
|
8月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
8月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
694 0
|
10月前
|
数据采集 存储 数据库
Python爬虫开发:Cookie池与定期清除的代码实现
Python爬虫开发:Cookie池与定期清除的代码实现
|
9月前
|
算法 程序员 API
电商程序猿开发实录:淘宝商品python(2)
本文分享了开发者在对接淘宝商品详情API过程中的真实经历,涵盖权限申请、签名验证、限流控制、数据解析及消息订阅等关键环节,提供了实用的Python代码示例,帮助开发者高效调用API,提升系统稳定性与数据处理能力。
|
11月前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
1267 1

热门文章

最新文章

推荐镜像

更多