Python操作数据库需依类型选择驱动:SQLite用内置sqlite3模块,MySQL需安装pymysql等第三方库;核心在于正确连接、安全查询(?占位防注入)、显式提交(commit)及用with自动管理资源。

Python操作数据库主要靠第三方库,SQLite用内置的sqlite3,MySQL需安装pymysql或mysql-connector-python。关键不是装什么,而是怎么连、怎么查、怎么防错。
SQLite:不用装驱动,直接上手
Python自带sqlite3模块,适合本地开发、小项目或测试。它把整个数据库存成一个文件,没有服务端,开箱即用。
- 连接只需
sqlite3.connect("db.sqlite"),文件不存在会自动创建 - 务必用
cursor.execute()执行SQL,参数用?占位(防SQL注入),比如cur.execute("INSERT INTO user(name) VALUES (?)", ("Alice",)) - 增删改后要调用
conn.commit(),否则不生效;用完记得conn.close(),或更稳妥地用with sqlite3.connect(...) as conn:自动关闭
MySQL:先装驱动,再连远程或本地库
MySQL需要额外安装客户端驱动。推荐pymysql(纯Python,安装快)或mysql-connector-python(官方维护)。连接时要提供主机、端口、用户名、密码和数据库名。
- 安装命令:
pip install pymysql - 连接示例:
conn = pymysql.connect(host="localhost", port=3306, user="root", password="123456", database="testdb", charset="utf8mb4") - 查询结果默认是元组,加
cursorclass=pymysql.cursors.DictCursor可返回字典,字段名直接当key用 - 同样要用
conn.commit()提交修改,用try...except...finally确保异常时也能关闭连接
统一写法:用上下文管理简化资源控制
不管是SQLite还是MySQL,手动关连接容易漏。用with语句能自动处理打开和关闭,还能减少嵌套层级。
SHOPEX仿M18紫色版 ,适合综合商城,服饰商城.化妆品商城等使用.程序基于SHOPEX4.8.5 最新版制作. 安装方法:1.解压上传程序至网站根目录.. 访问:域名/bak.(用户名:admin 密码:123456)2.进入帝国备份王后,配置数据库信息.选择-www.taomoban.net目录.还原数据库.3.修改FTP目录下的config/config.php 数据库连接信息.4.登陆
立即学习“Python免费学习笔记(深入)”;
- SQLite:
with sqlite3.connect("app.db") as conn:→ 自动commit(成功)或rollback(异常)并close - MySQL:
with pymysql.connect(...) as conn:→ 同样自动关闭,但不会自动commit,需显式调用conn.commit()或设autocommit=True - 所有SQL操作建议封装成函数,传入参数、返回结果,避免重复写连接逻辑
常见坑和应对方法
新手常卡在连接失败、中文乱码、SQL报错这几处,其实多数有固定解法。
- MySQL连不上?检查
host是不是写成了127.0.0.1(某些配置下不认),换成localhost试试;确认MySQL服务已启动,且用户有对应主机访问权限 - 中文变问号?建表时指定
CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci,Python连接里加charset="utf8mb4" - 执行SQL报“no such table”?SQLite路径写错,或没进对目录;MySQL则可能是database没选对,或表名大小写敏感(Linux系统下注意)









