【问题标题】:Flask WTform - form undefinedFlask WTform - 形式未定义
【发布时间】:2021-10-17 08:11:06
【问题描述】:

我遇到了一个简单的烧瓶形式的问题。它说我的表单是未定义的,但我已经对照几个不同的教程检查了这个,我看不到任何明显的我错过的东西。谁能帮助我了解我哪里出错了。

我的蓝图还可以,它可以渲染静态的 hello world 等,这只是我遇到问题的形式。

views.py(在产品蓝图中)

from flask import Blueprint, render_template, request
from products.forms import ContactForm

products_bp = Blueprint('products', __name__, template_folder='templates')

@products_bp.route("/contact", methods=["GET", "POST"])
def contact():
    form = ContactForm()
    if form.validate_on_submit():
        name = form.name.data
        email = form.email.data
        message = form.message.data
        return name + email + message
return render_template('contact.html')

forms.py(在产品蓝图中)

from flask_wtf import FlaskForm
from wtforms import StringField, TextAreaField, SubmitField
from wtforms.validators import DataRequired, Email

class ContactForm(FlaskForm):
   name = StringField('name', validators=[DataRequired()])
   email = StringField('email', validators=[DataRequired()])
   message = TextAreaField('message', validators=[DataRequired()])
   send = SubmitField('send')

contact.html(在产品蓝图的模板文件夹中

{% block content %}

<h1>Contact</h1>

<form action="{{ url_for('products.contact') }}" method=post>
{{ form.name }}
{{ form.email }}
{{ form.message }}
{{ form.submit }}
</form>

{% endblock %}

错误

"/home/mysite/products/templates/contact.html", line 6, in block 'content'
    {{ form.name }}
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 474, in getattr
    return getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'form' is undefined

【问题讨论】:

    标签: flask flask-wtforms


    【解决方案1】:

    啊,我想我发现了错误。我需要在我的视图中定义表单,例如:

     return render_template('contact.html')
    

    变成现在

    return render_template('contact.html', form=form)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2020-05-17
      • 1970-01-01
      • 2018-02-01
      • 2018-12-03
      • 2015-10-25
      相关资源
      最近更新 更多