Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain

7. Python 文件与数据处理

数据库连接与操作

在现代软件开发中,数据库是存储和管理数据的核心工具。Python 提供了多种方式与数据库进行交互,无论是关系型数据库(如 MySQL、PostgreSQL)还是非关系型数据库(如 MongoDB、Redis),Python 都有相应的库支持。本节将介绍如何使用 Python 连接和操作数据库。

1. 数据库连接的基本步骤

在 Python 中,连接数据库通常需要以下几个步骤:

  1. 安装数据库驱动:不同的数据库需要不同的驱动。例如,MySQL 使用 mysql-connector-python 或 PyMySQL,PostgreSQL 使用 psycopg2,SQLite 则内置在 Python 标准库中。

  2. 导入数据库模块:根据所使用的数据库,导入相应的模块。

  3. 建立连接:使用数据库模块提供的连接函数,传入数据库的地址、端口、用户名、密码等信息,建立与数据库的连接。

  4. 创建游标:游标(Cursor)是用于执行 SQL 语句并获取结果的对象。

  5. 执行 SQL 语句:通过游标执行 SQL 查询或操作。

  6. 提交事务:对于写操作(如 INSERT、UPDATE、DELETE),需要提交事务以保存更改。

  7. 关闭连接:操作完成后,关闭游标和数据库连接。

2. 连接 MySQL 数据库示例

以下是一个连接 MySQL 数据库并执行查询的示例:

import mysql.connector

# 建立连接
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",
    database="testdb"
)

# 创建游标
cursor = conn.cursor()

# 执行 SQL 查询
cursor.execute("SELECT * FROM users")

# 获取查询结果
results = cursor.fetchall()
for row in results:
    print(row)

# 关闭游标和连接
cursor.close()
conn.close()
3. 连接 PostgreSQL 数据库示例

连接 PostgreSQL 数据库的步骤与 MySQL 类似,只是使用的模块不同:

import psycopg2

# 建立连接
conn = psycopg2.connect(
    host="localhost",
    dbname="testdb",
    user="postgres",
    password="password"
)

# 创建游标
cursor = conn.cursor()

# 执行 SQL 查询
cursor.execute("SELECT * FROM users")

# 获取查询结果
results = cursor.fetchall()
for row in results:
    print(row)

# 关闭游标和连接
cursor.close()
conn.close()
4. 使用 ORM 框架

除了直接使用 SQL 语句操作数据库,Python 还提供了多种 ORM(对象关系映射)框架,如 SQLAlchemy 和 Django ORM。ORM 框架允许开发者通过操作 Python 对象来间接操作数据库,从而避免直接编写 SQL 语句。

以下是一个使用 SQLAlchemy 的示例:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 创建数据库引擎
engine = create_engine('sqlite:///example.db', echo=True)

# 定义基类
Base = declarative_base()

# 定义模型类
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

# 创建表
Base.metadata.create_all(engine)

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()

# 添加数据
new_user = User(name="Alice", age=25)
session.add(new_user)
session.commit()

# 查询数据
users = session.query(User).all()
for user in users:
    print(user.name, user.age)

# 关闭会话
session.close()
5. 数据库操作的注意事项
  • 事务管理:对于写操作,确保在操作完成后提交事务。如果发生错误,可以回滚事务以避免数据不一致。

  • SQL 注入:避免直接拼接 SQL 语句,使用参数化查询来防止 SQL 注入攻击。

  • 连接池:在高并发场景下,使用连接池来管理数据库连接,以提高性能。

  • 异常处理:在数据库操作中,可能会遇到各种异常(如连接失败、SQL 语法错误等),需要妥善处理这些异常。

6. 总结

Python 提供了丰富的工具和库来连接和操作数据库。无论是直接使用 SQL 语句还是通过 ORM 框架,开发者都可以轻松地与数据库进行交互。掌握这些技能对于开发数据驱动的应用程序至关重要。

在下一节中,我们将探讨数据序列化与反序列化的相关内容。

Last Updated:: 3/17/25, 7:20 PM