Python 在Flask中创建web表单时,I';我得到错误:jinja2.exceptions.UndefinedError:';复习表格&x27;是未定义的
以下是烧瓶代码:Python 在Flask中创建web表单时,I';我得到错误:jinja2.exceptions.UndefinedError:';复习表格&x27;是未定义的,python,html,flask,jinja2,wtforms,Python,Html,Flask,Jinja2,Wtforms,以下是烧瓶代码: from flask import Flask, render_template from wtforms import Form, TextAreaField app = Flask(__name__) app.config['SECRET_KEY'] = 'mysecretkey' class ReviewForm(Form): reviewText = TextAreaField() @app.route('/', methods=['GET', 'POST
from flask import Flask, render_template
from wtforms import Form, TextAreaField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecretkey'
class ReviewForm(Form):
reviewText = TextAreaField()
@app.route('/', methods=['GET', 'POST'])
def index():
reviewform = ReviewForm()
return render_template("review.html", form=reviewform)
if __name__ == '__main__':
app.run(debug=True)
以下是使用Jinja2的表单模板:
<!doctype html>
<html>
<head>
<title>Review Page</title>
</head>
<body>
<h1>Enter your review</h1>
<form method="POST" action="{{ url_for('index') }}">
{{ reviewform.csrf_token }}
{{ reviewform.reviewText }}
</form>
</body>
</html>
您正在使用
form=reviewform
调用render\u template
,这意味着reviewform
将在模板中以form
的名称进行访问。要解决此问题,您可以执行以下操作之一:
- 将调用更改为
render\u template
return render_template("review.html", reviewform=reviewform)
- 或者修改模板以使用
而不是表单
查看表单
<form method="POST" action="{{ url_for('index') }}"> {{ form.csrf_token }} {{ form.reviewText }} </form>
{{form.csrf_token} {{form.reviewText}
<form method="POST" action="{{ url_for('index') }}">
{{ form.csrf_token }}
{{ form.reviewText }}
</form>