要在不使用Flask-Bootstrap的情况下使用WTForms,您可以手动编写HTML模板,并使用WTForms的表单渲染方法来生成表单字段的HTML代码。
以下是一个示例解决方法:
首先,确保您已在项目中安装了WTForms库。
接下来,假设您有一个简单的表单类,例如:
from wtforms import Form, StringField, SubmitField
class MyForm(Form):
name = StringField('Name')
submit = SubmitField('Submit')
然后,您可以手动编写一个HTML模板来渲染该表单。创建一个名为form.html
的文件,并将以下代码添加到文件中:
在这个HTML模板中,我们使用了WTForms的表单渲染方法,例如{{ form.name.label }}
和{{ form.name }}
。我们还添加了一个CSRF令牌{{ form.csrf_token }}
,用于保护表单免受跨站请求伪造的攻击。
最后,在您的Flask视图函数中,您可以使用WTForms的render_template
函数来渲染该HTML模板,并将表单对象传递给它。例如:
from flask import Flask, render_template, request
from myform import MyForm
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm(request.form)
if request.method == 'POST' and form.validate():
# 处理表单提交
pass
return render_template('form.html', form=form)
if __name__ == '__main__':
app.run()
在上面的示例中,我们将表单对象传递给render_template
函数,并在HTML模板中使用它来渲染表单字段。
这样就可以在不使用Flask-Bootstrap的情况下使用WTForms了。您可以根据需要进一步定制HTML模板以满足您的需求。