以下是一个简单的例子,演示如何在 Flask 中使用 Flask-WTF 创建一个简单的表单:
首先,你需要安装 Flask-WTF:
pip install Flask-WTF
然后,你可以使用以下代码创建一个简单的 Flask 应用,并在其中使用 Flask-WTF:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
class MyForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
submit = SubmitField('Submit')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
# 处理表单提交的逻辑,这里简单地打印名字
name = form.name.data
print(f'Name: {name}')
return render_template('index.html', form=form)
if __name__ == '__main__':
app.run(debug=True)
在这个例子中,我们定义了一个简单的表单 MyForm,其中包含一个文本字段(StringField)用于输入名字,和一个提交按钮(SubmitField)。我们还定义了一个 index 路由来渲染表单并处理表单提交。
在模板文件 index.html 中,你可以使用 Jinja2 模板引擎来渲染表单,以及显示验证错误:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask WTF Example</title>
</head>
<body>
<h1>Flask WTF Example</h1>
<form method="post" action="/">
{{ form.hidden_tag() }}
<label for="name">Name:</label>
{{ form.name.label }}
{{ form.name }}
{% if form.name.errors %}
<span style="color: red;">{{ form.name.errors[0] }}</span>
{% endif %}
<br>
{{ form.submit() }}
</form>
</body>
</html>
在模板中,我们使用 {{ form.hidden_tag() }} 来包含 Flask-WTF 表单中的隐藏字段。然后,我们使用 {{ form.name.label }} 和 {{ form.name }} 来渲染表单中的字段和标签。在错误处理部分,我们使用 {{ form.name.errors }} 来获取验证错误(如果有)。
这只是一个简单的例子,Flask-WTF 可以处理更复杂的表单和验证逻辑。通过查阅 Flask-WTF 和 WTForms 的文档,你可以了解更多关于字段类型、验证器以及如何自定义表单的信息。
转载请注明出处:http://www.zyzy.cn/article/detail/7315/Flask