在flask web模板中渲染表单时报错?

flask代码部分:

-- coding: utf-8 --

from flask import Flask,render_template,url_for
from flask_bootstrap import Bootstrap
from flask_moment import Moment
from datetime import datetime
from flask_wtf import Form
from wtforms import StringField,SubmitField
from wtforms.validators import Required

app=Flask(__name__)
bootstrap=Bootstrap(app)
moment=Moment(app)
app.config['SECRET_KEY'] = 'hard to guess string'

class NameForm(Form):

name=StringField('what is your name?',validators=[Required()])
submit=SubmitField('Submit')

@app.route('/',methods=['GET','Post'])
def index():

name=None
form=NameForm
if form.validate_on_submit():
    name=form.name.data
    form.name.data=''
return render_template('index.html',form=form,name=name)

下面是index.html代码部分:
{% extends"base.html" %}

{% block title%}Flask{%endblock %}

{% block page_content %}
<div class="page-header">

<h1>Hello,{% if name %}{{name}}{% else %}Stranger{% endif %}</h1>
{{wtf.quick_form(form)}}

</div>
{% endblock%}

报错显示:
TypeError: validate_on_submit() missing 1 required positional argument: 'self'

阅读 3.1k
1 个回答

原来是实例化form时候NameForm后面缺少了括号。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题