WTForms烧瓶:form_name.field_name.data =无

时间:2019-08-03 19:16:39

标签: flask-wtforms wtforms

我很早就开始学习Flask / WTForms,我想知道为什么我为什么对form_name.field_name.data总是不输入任何内容

application.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)

index.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':无,'password':无,'name':无,'email':无,'city':无},但我希望用户输入值而不是无。

类似地,这些打印中的每一个都打印无,我希望用户输入值。

        print(username)
        print(password)
        print(name)
        print(email)
        print(city)

0 个答案:

没有答案