Flask WTform - 表单未定义

Flask WTform - form undefined

我对简单的烧瓶形式有疑问。它说我的表单未定义,但我已经根据几个不同的教程对此进行了检查,我看不出有什么明显的遗漏。任何人都可以帮助我了解我哪里出错了。

我的蓝图在其他方面还不错,它可以呈现静态的 hello worlds 等,这只是我遇到问题的形式。

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

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

 return render_template('contact.html')

变成现在

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