Flask框架如何连接SQLite3数据库,需要注意什么?
- 云服务器
- 2026-07-24
- 5
连接SQLite3数据库
在Flask框架中,连接SQLite3数据库是一种常见的数据持久化方式,以下是详细步骤。
环境准备
- 安装Flask:pip install flask
- SQLite3通常内置在Python中,无需额外安装。
配置数据库
在Flask应用中,定义数据库连接函数,并确保连接在请求结束时关闭。
import sqlite3 from flask import Flask, g app = Flask(__name__) def get_db(): if 'db' not in g: g.db = sqlite3.connect('database.db') g.db.row_factory = sqlite3.Row return g.db @app.teardown_appcontext def close_db(error): if hasattr(g, 'db'): g.db.close()
创建表格
使用init_db函数初始化数据库,创建所需的表。

数据操作
通过SQL语句执行增删改查,使用参数化查询防止SQL载入。


| 操作类型 | SQL示例 |
|---|---|
| 查询 | SELECT FROM tasks |
| 插入 | INSERT INTO tasks (title) VALUES (?) |
| 更新 | UPDATE tasks SET title=? WHERE id=? |
| 删除 | DELETE FROM tasks WHERE id=? |
完整示例
结合路由返回数据。
@app.route('/tasks') def show_tasks(): db = get_db() tasks = db.execute('SELECT FROM tasks').fetchall() return render_template('tasks.html', tasks=tasks)
相关问题与解答
问题1:如何在Flask应用中处理SQLite3的并发访问?
解答:SQLite3支持并发读取,但写入时锁住整个数据库,对于高并发写入场景,建议使用其他数据库如PostgreSQL,在Flask中,可以使用g对象确保每个请求有独立连接,并设置timeout参数缓解锁问题。
问题2:Flask-SQLAlchemy和直接使用sqlite3模块有何区别?
解答:Flask-SQLAlchemy提供ORM功能,简化数据库操作,支持复杂查询和迁移,适合大型项目,直接使用sqlite3模块更轻量,需要手动管理SQL语句和连接,适合简单或快速原型开发。