flask-wtforms - WTForms Flask:form_name.field_name.data = None
问题描述
我很早就开始学习 Flask/WTForms,我想知道为什么我一直没有为 form_name.field_name.data
应用程序.py:
import os
from flask import Flask, session, render_template, request, redirect, url_for
from flask_session import Session
from wtforms import Form, PasswordField, StringField, SelectField, validators
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
app = Flask(__name__)
# Create registration form class
class RegistrationForm(Form):
username = StringField("Username")
password = PasswordField("Password")
name = StringField("Name")
email = StringField("Email Address")
city = StringField("Nearest City")
@app.route("/", methods=["GET", "POST"])
def signup():
registration_form = RegistrationForm()
if request.method == "GET":
return render_template("index.html", registration_form=registration_form)
else:
username = registration_form.username.data
password = registration_form.password.data
name = registration_form.name.data
email = registration_form.email.data
city = registration_form.city.data
# print for testing
print(registration_form.data)
print(username)
print(password)
print(name)
print(email)
print(city)
user = {
"username": registration_form.username.data,
"password": registration_form.password.data,
"name": registration_form.name.data,
"email": registration_form.email.data,
"city": registration_form.city.data
}
return render_template("success.html", user=user)
索引.html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Index</title>
</head>
<body>
<h1>Index</h1>
<form action="/" method="POST">
<ul>
{% for field in registration_form %}
<li>{{ field.label }}: {{ field }}</li>
{% endfor %}
<li><input type="submit"></li>
</ul>
</form>
</body>
</html>
print(registration_form.data) 打印 {'username': None, 'password': None, 'name': None, 'email': None, 'city': None},但我希望用户输入值而不是 None .
同样,这些打印中的每一个都打印无,我希望用户输入值。
print(username)
print(password)
print(name)
print(email)
print(city)
解决方案
推荐阅读
- php - 使用 PHP 将部分 HTML 添加到文件中
- visual-studio-code - 如何从 Visual Studio Code 关闭(或打开)声音?
- reactjs - 反应 setState 没有正确更新
- c++ - 在 WSL 中使用 Visual Studio 时出现“找不到文件或目录”
- excel - 如何在 Excel 中列出/生成所有可能的组合
- javascript - JS 文件得到一个 net::ERR_ABORTED 404 (Not Found)
- nullpointerexception - JavaFX 切换 fxml 文件:线程中的异常 ... InvocationTargetException
- python - 在 Django 中,我的定义(循环)在其他页面上不起作用
- python - 多处理 - 如何检测进程何时成功启动?
- python - 如何让 discord python bot 对自己的消息做出反应?