鋒哥原創的Flask3??Python Web開發?Flask3視頻教程:
2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili
list.html頁面,加一個更新操作超鏈接:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>班級列表</title>
</head>
<body>
<h3>班級列表</h3>
<a href="/grade/add">添加</a><br/>
編號 , 班級名稱 , 備注 ,操作<br/>
{% for grade in gradeList %}{{ grade.id }} , {{ grade.name }} , {{ grade.remark }} , <a href="/grade/update?id={{ grade.id }}">修改</a><br/>
{% endfor %}
</body>
</html>
更新操作,首先GradeForm里面加下id字段,HiddenField類型,是隱藏域。
class GradeForm(FlaskForm):id = HiddenField()name = StringField('班級名稱', render_kw={'placeholder': '請輸入班級名稱'},validators=[DataRequired()])remark = TextAreaField('備注', render_kw={'placeholder': '請輸入班級備注'})submit = SubmitField("登錄")
新建update.html頁面:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>修改頁面</title>
</head>
<body>
<form action="update" method="post"><table>{{ form.csrf_token }}<tr><td>{{ form.name.label }}:</td><td>{{ form.name }}</td></tr><tr><td valign="top">{{ form.remark.label }}:</td><td>{{ form.remark }}</td></tr><tr><td>{{ form.submit }}</td><td>{{ form.id }}</td></tr></table>
</form>
</body>
</html>
grade.py里面新建一個update()視圖:先通過query對象的get方法,根據id獲取班級對象,然后修改對象屬性,最后commit提交即可。
@grade_bp.route('/update', methods=['GET', 'POST'])
def update():gradeForm = GradeForm()if request.method == 'GET':id = request.args.get('id', type=int)grade = GradeModel.query.get(id)gradeForm.id.data = grade.idgradeForm.name.data = grade.namegradeForm.remark.data = grade.remarkreturn render_template('grade/update.html', form=gradeForm)else:if gradeForm.validate():data = gradeForm.dataprint('data:', data)print(data['id'])grade = GradeModel.query.get(data['id'])grade.name = data['name']grade.remark = data['remark']db.session.commit()return index()
最后測試下: