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

一周学会Flask3 Python Web开发-在模板中渲染WTForms表单视图函数里获取表单数据

锋哥原创的Flask3  Python Web开发 Flask3视频教程:

2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

为了能够在模板中渲染表单,我们需要把表单类实例传入模板。首先在视图函数里实例化表单类LoginForm,然后在render_template()函数中使用关键字参数form将表单实例传入模板,user.py

@user_bp.route('/login')
def login():
    loginForm = LoginForm()
    print("标签:", loginForm.username.label)
    print("表单", loginForm.username)
    return render_template('login.html', form=loginForm)

login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
<form action="login" method="post">
    {{ form.csrf_token }}
    <table>
        <tr>
            <td>
                {{ form.username.label }}:
            </td>
            <td>
                {{ form.username }}
            </td>
        </tr>
        <tr>
            <td>
                {{ form.password.label }}:
            </td>
            <td>
                {{ form.password }}
            </td>
        </tr>
        <tr>
            <td colspan="2">
                {{ form.remember.label }}:{{ form.remember }}
            </td>
        </tr>
        <tr>
            <td>
                {{ form.submit }}
            </td>
        </tr>
    </table>
</form>
</body>
</html>

运行测试:

后端login()视图函数改下,接收post请求:

@user_bp.route('/login', methods=['GET', 'POST'])
def login():
    print(request.method)
    loginForm = LoginForm()
    print("标签:", loginForm.username.label)
    print("表单", loginForm.username)
    if request.method == 'GET':
        return render_template('login.html', form=loginForm)
    else:
        username = loginForm.username.data
        password = loginForm.password.data
        print(username, password)
        return 'ok'

http://www.dtcms.com/a/49624.html

相关文章:

  • 高效卸载神器:深度体验分享
  • AF3 process_final函数解读
  • 大数据测试总结
  • 鸿蒙开发新视角:用ArkTS解锁责任链模式
  • Linux系统管理(十八)——Ubuntu Server环境下载安装图形化界面、英伟达显卡驱动、Cuda、cudnn、conda的深度学习环境
  • mysql表分区
  • EP 架构:未来主流方向还是特定场景最优解?
  • 为什么用源码搭建体育比分网直播更加高效
  • 网络编程 day02
  • 【人造稀缺性的资本围猎场】
  • 汽车智能钥匙中PKE低频天线的作用
  • Centos7服务器防火墙设置教程
  • 【AI Guide】AI面试攻略只用看这一篇就够了!力争做全网最全的AI面试攻略——大模型(三十二)Zero-shot
  • DeepSeek 智慧城市应用:交通流量预测(918)
  • 《Canvas修仙传·第四重天元婴境(上集)》 ——WebGL虚空造物与Three.js破碎虚空之法
  • PH热榜 | 2025-03-04
  • 第40天:安全开发-JavaEE应用SpringBoot框架JWT身份鉴权打包部署JARWAR
  • 神码AC-AP无线部署
  • k8s面试题总结(八)
  • 大模型在高血压预测及围手术期管理中的应用研究报告
  • yum源选要配置华为云的源,阿里云用不了的情况
  • 恒流驱动革新:ZCC6303凭实力替代SY7301
  • MyBatis - 单元测试 参数传递 注解 CRUD
  • 大牛证券|光伏回收产业站上风口 千亿元市场空间待释放
  • GBT32960 协议编解码器的设计与实现
  • Rust WebAssembly 入门教程
  • 迷你世界脚本对象库接口:ObjectLib
  • 一阶逻辑篇--一门数学编程语言
  • 【练习】【链表】力扣热题100 21. 合并两个有序链表
  • 【Flink银行反欺诈系统设计方案】1.短时间内多次大额交易场景的flink与cep的实现