锋哥原创的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'


















