在Flask应用中使用数据库
发布时间:2023-12-23 06:58:35
在 Flask 应用中使用数据库是非常常见和重要的操作之一。这样可以存储和检索数据,使应用更加灵活和实用。下面是一个简单的使用例子,展示如何在 Flask 应用中使用 SQLite 数据库。
首先,确保已经安装了 Flask 和 SQLite 数据库。可以使用以下命令进行安装:
pip install flask pip install sqlite3
接下来,我们将创建一个简单的任务清单应用,其中使用 SQLite 数据库来存储任务列表。
首先,创建一个名为 app.py 的文件,并导入所需的库和模块:
from flask import Flask, render_template, request, redirect import sqlite3
接下来,在 Flask 应用中创建一个任务清单的数据库表。可以这样做:
def create_table():
conn = sqlite3.connect('tasks.db')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS tasks(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)')
conn.commit()
conn.close()
这个函数连接到 SQLite 数据库 tasks.db,并在其中创建一个名为 tasks 的表格。该表格包含两个列:id 和 name。
然后,创建一个 Flask 应用实例:
app = Flask(__name__)
接下来,创建一个路由,用于展示任务清单页面,并显示其中的任务列表:
@app.route('/')
def index():
conn = sqlite3.connect('tasks.db')
c = conn.cursor()
c.execute('SELECT * FROM tasks')
tasks = c.fetchall()
conn.close()
return render_template('index.html', tasks=tasks)
这个路由连接到 SQLite 数据库 tasks.db,执行一个查询来选择所有的任务,并将结果返回给模板引擎。
然后,创建一个路由,用于处理添加新任务的请求:
@app.route('/add', methods=['POST'])
def add():
name = request.form['name']
conn = sqlite3.connect('tasks.db')
c = conn.cursor()
c.execute('INSERT INTO tasks (name) VALUES (?)', (name,))
conn.commit()
conn.close()
return redirect('/')
这个路由获取从前端页面提交的任务名称,连接到 SQLite 数据库 tasks.db,并执行一个插入操作将新任务添加到数据库中。
最后,创建一个模板文件 index.html,用于展示任务清单页面和列表:
<!DOCTYPE html>
<html>
<head>
<title>Task List</title>
</head>
<body>
<h1>Task List</h1>
<form action="/add" method="post">
<input type="text" name="name" placeholder="Enter task">
<input type="submit" value="Add">
</form>
<ul>
{% for task in tasks %}
<li>{{ task[1] }}</li>
{% endfor %}
</ul>
</body>
</html>
这个模板文件包含一个输入框和一个添加按钮,用于提交新任务。然后,使用循环遍历任务列表,并将每个任务作为列表项显示出来。
最后,运行 Flask 应用:
if __name__ == '__main__':
create_table()
app.run()
这样,就完成了一个简单的任务清单应用,其中使用了 SQLite 数据库来存储和检索任务列表。
