表单不呈现 html 元素,只是将表单字段对象打印为文本

时间:2021-01-08 16:00:33

标签: python html flask jinja2 flask-wtforms

我正在尝试在 python 中使用 Flask 创建一个简单的表单。我正在尝试使用 jinja2 模板来显示表单。但是模板对象没有创建相应的 html 元素,只是将表单字段对象打印为文本。

这是flask代码块

from flask import Flask
from flask import render_template
from flask_wtf import FlaskForm
from wtforms import IntegerField

app = Flask(__name__)

class TestForm(): 
    value = IntegerField('Value')


@app.route('/', methods = ['GET', 'POST'])
def test():
    
    form = TestForm()
    
    return render_template('template.html', form = form)

这是我的html模板

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <p>Test Page !!</p>
    <div>
        <form method="post">
            {{ form.csrf_token }}
            {{ form.value.label }}
            {{ form.value }}
            <input type="submit">
        </form>
    </div>
</body>
</html>

这是网页的样子

enter image description here

我不知道为什么与表单对应的 html 元素没有显示。知道为什么会发生这种情况。我正在尝试在 anaconda python 环境中的 Windows 上运行它。我以前在 ubuntu 上没有遇到过问题。

1 个答案:

答案 0 :(得分:0)

您的表单应该继承自 FlaskForm,如下所示:

from flask_wtf import FlaskForm

class TestForm(FlaskForm): 
    value = IntegerField('Value')
相关问题