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'
原来是实例化form时候NameForm后面缺少了括号。