Flask 提供了对 SQLite 数据库的轻量级支持,使得在 Flask 应用中使用 SQLite 非常方便。以下是一个简单的例子,演示如何在 Flask 应用中使用 SQLite 数据库。

首先,确保你已经安装了 Flask 和 SQLite:
pip install Flask

接下来,你可以使用以下代码创建一个简单的 Flask 应用,并在其中使用 SQLite 数据库:
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# 配置 SQLite 数据库连接,数据库文件将保存在当前文件夹下的 site.db 文件中
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'

# 创建 SQLAlchemy 实例
db = SQLAlchemy(app)

# 定义数据模型类
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return f'<User {self.username}>'

# 创建数据库表
db.create_all()

@app.route('/')
def index():
    # 查询所有用户并传递给模板
    users = User.query.all()
    return render_template('index.html', users=users)

@app.route('/add_user', methods=['POST'])
def add_user():
    if request.method == 'POST':
        username = request.form['username']
        email = request.form['email']

        # 创建新用户并添加到数据库
        new_user = User(username=username, email=email)
        db.session.add(new_user)
        db.session.commit()

    return redirect(url_for('index'))

if __name__ == '__main__':
    app.run(debug=True)

在上述代码中,我们首先配置了 SQLite 数据库的连接,指定数据库文件的路径。然后,我们使用 SQLAlchemy 创建了一个数据模型类 User,代表了用户表。接着,我们使用 db.create_all() 创建了数据库表。

在路由 / 中,我们查询所有用户并传递给模板渲染。在路由 /add_user 中,我们接受通过表单提交的用户名和电子邮件,创建一个新的用户对象,并将其添加到数据库。

在模板文件 index.html 中,我们使用 Jinja2 模板引擎来渲染用户列表:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Flask SQLite Example</title>
</head>
<body>
    <h1>Flask SQLite Example</h1>

    <form method="post" action="/add_user">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" required>
        <br>
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required>
        <br>
        <button type="submit">Add User</button>
    </form>

    <h2>User List:</h2>
    <ul>
        {% for user in users %}
            <li>{{ user.username }} - {{ user.email }}</li>
        {% endfor %}
    </ul>
</body>
</html>

这只是一个简单的例子,你可以根据需要扩展和修改。在实际应用中,你可能需要处理更复杂的数据模型和查询。确保在生产环境中使用安全的数据库配置,例如使用环境变量来存储敏感信息。


转载请注明出处:http://www.zyzy.cn/article/detail/7316/Flask