Flask框架实现连接SQLite3数据库的方法分析
介绍
Flask是一个轻量级的Python Web框架,其核心理念是保持简单易用。在Web开发中,使用数据库是必不可少的一部分,而SQLite3是一种轻量级,高效的关系型数据库,常被用于本地开发及小规模应用中。本文将介绍如何在Flask框架中连接SQLite3数据库的方法。
步骤
1. 导入需要的库
使用Flask框架连接SQLite3数据库需要导入两个库:flask
和sqlite3
。其中,flask
是Flask框架的基础库,sqlite3
则是Python自带的操作SQLite3数据库的库。
from flask import Flask, g
import sqlite3
2. 创建Flask应用实例
在使用Flask框架时,需要先创建一个Flask应用实例。下面的代码演示了如何创建一个简单的Flask应用实例。
app = Flask(__name__)
3. 配置数据库连接
连接SQLite3数据库需要配置数据库连接的相关参数,如数据库名称、用户名、密码、主机名等信息。Flask框架使用全局变量g
来保存数据库连接信息,因此需要在应用实例中配置DATABASE
变量,指定数据库的相关信息。
app.config['DATABASE'] = '/path/to/database/file.db'
4. 建立数据库连接
在Flask框架中建立数据库连接需要使用两个函数:connect_db()
和get_db()
。其中,connect_db()
函数用于建立数据库连接,get_db()
函数则用于获取已建立的数据库连接。
def connect_db():
"""建立数据库连接"""
rv = sqlite3.connect(app.config['DATABASE'])
rv.row_factory = sqlite3.Row
return rv
def get_db():
"""获取已建立的数据库连接"""
if not hasattr(g, 'sqlite_db'):
g.sqlite_db = connect_db()
return g.sqlite_db
5. 关闭数据库连接
在Flask框架中,使用完毕后要记得关闭数据库连接,以释放资源。
@app.teardown_appcontext
def close_db(error):
"""关闭数据库连接"""
if hasattr(g, 'sqlite_db'):
g.sqlite_db.close()
6. 使用示例
下面的示例演示了如何在Flask框架中使用SQLite3数据库。在这个示例中,我们将创建一个名为users
的数据库表,用于保存用户信息。
from flask import Flask, g
import sqlite3
# 创建Flask应用实例
app = Flask(__name__)
# 配置数据库连接
app.config['DATABASE'] = 'database.db'
# 建立数据库连接
def connect_db():
"""建立数据库连接"""
rv = sqlite3.connect(app.config['DATABASE'])
rv.row_factory = sqlite3.Row
return rv
def get_db():
"""获取已建立的数据库连接"""
if not hasattr(g, 'sqlite_db'):
g.sqlite_db = connect_db()
return g.sqlite_db
# 关闭数据库连接
@app.teardown_appcontext
def close_db(error):
"""关闭数据库连接"""
if hasattr(g, 'sqlite_db'):
g.sqlite_db.close()
# 创建数据库表
def init_db():
"""创建数据库表"""
with app.app_context():
db = get_db()
with app.open_resource('schema.sql', mode='r') as f:
db.cursor().executescript(f.read())
db.commit()
# 客户端请求处理函数
@app.route('/')
def index():
"""客户端请求处理函数"""
db = get_db()
cur = db.execute('SELECT * FROM users')
users = cur.fetchall()
return str(users)
# 启动应用
if __name__ == '__main__':
app.run()
在以上示例中,我们创建了一个名为users
的数据库表,并使用GET方法查询了表中的所有记录。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flask框架实现连接sqlite3数据库的方法分析 - Python技术站