将 Tornado 与 WTForms {{ form.field }} 一起使用时显示“<input name='field'>”代替输入字段?
When using Tornado with WTForms {{ form.field }} display "<input name='field'>" in place of input field?
我在 Python 2.7 上使用 Tornado 以及 wtforms_tornado 和 wtforms。
我已经使用 WTForms 在 Flask 中开发了一个项目。
我开始将该项目从 Flask 更改为 Tornado,但此时卡住了。
run.py
class SignupForm(Form):
email=StringField('email',[
validators.Required(message='Email Required'),
],)
class MainHandler(RequestHandler):
def get(self):
form=SignupForm()
self.render('templates/home.html',form=form)
class SignupHandler(RequestHandler):
def post(self):
form=SignupForm(self.request.arguments)
if form.validate():
email=form.data['email']
self.write(email)
else:
loader=template.Loader('templates/')
self.write(loader.load('home.html').generate(form=form))
home.html
<form enctype='multipart/form-data' action='/signup' method='POST'>
{{ form.email }}
<input type='submit' value='Sign Up' />
</form>
您需要为模板的该部分禁用 Tornado's auto-escape feature:
{% raw form.email %}
我在 Python 2.7 上使用 Tornado 以及 wtforms_tornado 和 wtforms。 我已经使用 WTForms 在 Flask 中开发了一个项目。 我开始将该项目从 Flask 更改为 Tornado,但此时卡住了。
run.py
class SignupForm(Form):
email=StringField('email',[
validators.Required(message='Email Required'),
],)
class MainHandler(RequestHandler):
def get(self):
form=SignupForm()
self.render('templates/home.html',form=form)
class SignupHandler(RequestHandler):
def post(self):
form=SignupForm(self.request.arguments)
if form.validate():
email=form.data['email']
self.write(email)
else:
loader=template.Loader('templates/')
self.write(loader.load('home.html').generate(form=form))
home.html
<form enctype='multipart/form-data' action='/signup' method='POST'>
{{ form.email }}
<input type='submit' value='Sign Up' />
</form>
您需要为模板的该部分禁用 Tornado's auto-escape feature:
{% raw form.email %}