鋒哥原創的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.datapassword = loginForm.password.dataprint(username, password)return 'ok'