欢迎访问宙启技术站
智能推送

在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 的表格。该表格包含两个列:idname

然后,创建一个 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 数据库来存储和检索任务列表。