显示页面讨论过去修订反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== 第三十二章:SQLite数据库 ====== ===== 本章目标 ===== 完成本章学习后,你将能够: * 使用sqlite3模块 * 执行SQL语句 * 处理事务 * 防止SQL注入 ===== 基础操作 ===== <code python> import sqlite3 # 连接数据库 conn = sqlite3.connect('example.db') cursor = conn.cursor() # 创建表 cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE ) ''') # 插入数据 cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Alice", "alice@example.com")) conn.commit() # 查询 cursor.execute("SELECT * FROM users") rows = cursor.fetchall() for row in rows: print(row) conn.close() </code> ===== 上下文管理器 ===== <code python> import sqlite3 # 使用上下文管理器 with sqlite3.connect('example.db') as conn: cursor = conn.cursor() cursor.execute("SELECT * FROM users") print(cursor.fetchall()) # 自动提交/回滚 </code> ===== 参数化查询 ===== <code python> import sqlite3 conn = sqlite3.connect('example.db') # 安全的参数化查询(防止SQL注入) name = "Alice'; DROP TABLE users; --" conn.execute("SELECT * FROM users WHERE name = ?", (name,)) # 批量插入 users = [("Bob", "bob@example.com"), ("Charlie", "charlie@example.com")] conn.executemany("INSERT INTO users (name, email) VALUES (?, ?)", users) conn.commit() </code> ===== 本章练习 ===== 1. 实现用户管理CRUD 2. 实现事务处理 3. 实现数据库迁移工具 下一章:[[python_course:chapter33|第三十三章:MySQL数据库]] 登录 Detach Close 该主题尚不存在 您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。 python/chapter32.txt 最后更改: 2026/04/09 14:40由 张叶安 登录