我在Flask中创建了一个联系表单,但它不起作用。它给出了错误NameError:全局名称'ContactForm'未定义
自定义表单是:
<form action="{{ url_for('contact') }}" method=post>
{{ form.hidden_tag() }}
{{ form.name.label }}
{{ form.name }}
{{ form.email.label }}
{{ form.email }}
{{ form.subject.label }}
{{ form.subject }}
{{ form.message.label }}
{{ form.message }}
{{ form.submit }}
</form>
routes.py是:
from flask import Flask, render_template
from forms import ContactForm
app = Flask(__name__)
def contact():
form = ContactForm()
if request.method == 'POST':
return 'Form posted.'
elif request.method == 'GET':
return render_template('contact.html', form=form)
if __name__ == '__main__':
app.run(debug=True)
我该如何解决这个问题?
答案 0 :(得分:1)
创建一个名为forms.py的新文件,并在其中插入以下代码。那么你的代码应该可以工作。
from flask.ext.wtf import Form
from wtforms import TextField, TextAreaField, SubmitField, validators
class ContactForm(Form):
name = TextField("Name", [validators.Required()])
email = TextField("Email", [validators.Required(), validators.email()])
subject = TextField("Subject", [validators.Required()])
message = TextAreaField("Message", [validators.Required()])
submit = SubmitField("Send")
答案 1 :(得分:0)
首先,你是否安装了flask-wtf?
并试试这个:form = ContactForm(request.form)