要在数据库中显示多行表单,通常涉及以下几个步骤:
假设我们有一个简单的User
表,想要在一个页面上显示所有用户的信息,并允许编辑。
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
from flask import Flask, render_template, request
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db.init_app(app)
@app.route('/users', methods=['GET', 'POST'])
def users():
if request.method == 'POST':
for key, value in request.form.items():
if key.startswith('user-'):
user_id = key.split('-')[1]
user = User.query.get(user_id)
if user:
user.name = request.form[f'user-{user_id}-name']
user.email = request.form[f'user-{user_id}-email']
db.session.commit()
users = User.query.all()
return render_template('users.html', users=users)
users.html
)<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Management</title>
</head>
<body>
<form method="post">
{% for user in users %}
<div>
<input type="hidden" name="user-{{ user.id }}" value="{{ user.id }}">
Name: <input type="text" name="user-{{ user.id }}-name" value="{{ user.name }}"><br>
Email: <input type="email" name="user-{{ user.id }}-email" value="{{ user.email }}"><br>
</div>
{% endfor %}
<button type="submit">Update Users</button>
</form>
</body>
</html>
通过以上步骤和示例代码,可以有效地在数据库中显示和管理多行表单数据。
领取专属 10元无门槛券
手把手带您无忧上云