信息发布→ 登录 注册 退出

Python数据库操作教程_SQLiteMySQL连接使用

发布时间:2026-01-10

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

Python操作数据库主要靠第三方库,SQLite用内置的sqlite3,MySQL需安装pymysqlmysql-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语句能自动处理打开和关闭,还能减少嵌套层级。

  • 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系统*意)
标签:# mysql  # linux  # word  # python  # app  # 端口  # 中文乱码  # sql注入  # linux系统  # mysql连接  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!