【发布时间】: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