当前位置: 首页 > news >正文

一周学会Flask3 Python Web开发-SQLAlchemy更新数据操作-班级模块

锋哥原创的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.id
        gradeForm.name.data = grade.name
        gradeForm.remark.data = grade.remark
        return render_template('grade/update.html', form=gradeForm)
    else:
        if gradeForm.validate():
            data = gradeForm.data
            print('data:', data)
            print(data['id'])
            grade = GradeModel.query.get(data['id'])
            grade.name = data['name']
            grade.remark = data['remark']
            db.session.commit()
            return index()

最后测试下:

相关文章:

  • 蓝桥模拟+真题讲解
  • MySQL -- 基本函数
  • vmware环境(vcenter许可证过期问题)
  • pytorch小记(八):pytorch中有关于.detach()的浅显见解
  • 暨南大学MEM复试资料
  • C++ 位图 bitset
  • 设备管理VTY(Telnet、SSH)
  • 软件工程--瀑布模型和敏捷模型的解释预定义
  • 【网络】Caddy 服务器如何提供 TLS(Transport Layer Security)(传输层安全协议)
  • DeepSeek(3):DeepSeek R1 提示词⼯程
  • Java缓存String(字符串常量池)、Integer (-128 到 127 )
  • Webpack 打包技术及逆向数据分析研究
  • 8、STL中的map和pair使用方法
  • How to develop Cangjie applications based on Jetbrains Fleet
  • MySQL 在 CentOS 7 上安装的步骤指南
  • 麒麟服务器操作系统PostgreSQL环境部署手册
  • Dubbo 服务发现
  • 【Linux】五种 IO 模型与非阻塞 IO
  • K8s的部署
  • 深度学习部署到小程序
  • 客场不敌蓉城遭遇联赛首败,申花争冠需要提升外援能力
  • “五一”假期国铁集团计划日均开行旅客列车超1.2万列
  • 李强签署国务院令,公布修订后的《中华人民共和国植物新品种保护条例》
  • 2025五一档首日电影票房破亿
  • 中国强镇密码丨洪泽湖畔的蒋坝,如何打破古镇刻板印象
  • 奔驰一季度利润降四成,受美国加征关税影响放弃全年盈利展望