以下是一个简单的例子,演示如何在 Flask 应用中使用 Flask SQLAlchemy:
首先,确保你已经安装了 Flask 和 Flask SQLAlchemy:
pip install Flask
pip install Flask-SQLAlchemy
接下来,你可以使用以下代码创建一个简单的 Flask 应用,并在其中使用 Flask SQLAlchemy:
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)
在上述代码中,我们首先配置了 Flask 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 SQLAlchemy Example</title>
</head>
<body>
<h1>Flask SQLAlchemy 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/7317/Flask