我使用flask-sqlalchemy创建了一个包含多行和多列的db表。我的要求是我需要定期更新网页行中几列的数据。是否可以使用flask sqlalchemy从网页编辑和更新表格中的行?有些人可以分享一个例子,这样我就可以更好地理解。
答案 0 :(得分:0)
所以,你有一个这样定义的模型:
class Row(db.Model)
__tablename__ = 'YourTableName'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
您需要构建一个合适的HTML表单以满足特定用例的需要(这可以在没有表单的情况下完成,但这是最简单的示例):
<form method="POST" action="{{ url_for('update_row') }}">
<input type="hidden" name="id" value="1">
<input type="text" name="name" placeholder="Enter new name">
</form>
然后你有一个view函数,它通过POST
请求接收这个表单输入,以更新特定的行:
@app.route('/update_row/', methods=['GET', 'POST'])
def update_row():
if request.method == 'POST':
# query.get() method gets a Row by the primary_key
record = Row.query.get(request.form.get('id', type=int))
# change the values you want to update
record.name = request.form.get('name')
# commit changes
db.session.commit()
# redirect back to your main view
return redirect(url_for('main'))
您显然希望添加验证,例如确保名称不为空,或者其他任何数据检查都适合您的用例。