Flask WTForms是一个基于Python的Web表单处理库,它可以帮助我们轻松地创建和管理表单,在本教程中,我们将学习如何使用Flask WTForms创建一个基本的表单,并使用它来提交和处理数据。
(图片来源网络,侵删)1、安装Flask WTForms
我们需要安装Flask WTForms库,可以使用pip命令进行安装:
pip install flaskwtf
2、创建一个简单的Flask应用
接下来,我们创建一个简单的Flask应用,用于展示如何使用Flask WTForms,我们需要导入所需的库:
from flask import Flask, render_template, request, redirect, url_for from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired
我们创建一个Flask应用实例:
app = Flask(__name__)
3、创建表单类
接下来,我们创建一个表单类,继承自FlaskForm
,在这个类中,我们可以定义表单的各种字段,例如文本框、单选按钮等,我们还可以在字段上添加验证器,以确保用户输入的数据是有效的,在这个例子中,我们创建了一个包含一个文本输入框和一个提交按钮的简单表单:
class MyForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) submit = SubmitField('Submit')
4、渲染表单模板
现在,我们需要创建一个HTML模板,用于显示我们的表单,在这个模板中,我们将使用Jinja2模板引擎来渲染表单的各个字段,我们创建一个名为templates
的文件夹,并在其中创建一个名为index.html
的文件,在这个文件中,我们将编写以下代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF8"> <meta name="viewport" content="width=devicewidth, initialscale=1.0"> <title>Flask WTForms Example</title> </head> <body> <h1>Flask WTForms Example</h1> <form method="POST" action="{{ url_for('submit') }}"> {{ form.hidden_tag() }} {{ form.name.label }} {{ form.name() }}<br> {{ form.submit() }} </form> </body> </html>
5、创建路由和视图函数
接下来,我们需要创建一个路由和视图函数,用于处理表单的提交,在这个视图函数中,我们将获取用户输入的数据,并对其进行处理,我们在app
对象上添加一个名为routes
的装饰器:
app = Flask(__name__) app.config['SECRET_KEY'] = 'mysecretkey'
我们创建一个名为routes
的列表,用于存储我们的路由和视图函数:
routes = []
接下来,我们定义一个名为submit
的视图函数,用于处理表单的提交:
@app.route('/', methods=['GET', 'POST']) def submit(): form = MyForm() if form.validate_on_submit(): return f'Hello, {form.name.data}!' return render_template('index.html', form=form)
在这个视图函数中,我们首先创建一个MyForm
实例,我们检查表单是否通过了验证(即用户是否输入了有效的数据),如果表单通过了验证,我们将返回一个包含用户输入的名字的消息,否则,我们将渲染index.html
模板,并将表单实例传递给模板,我们将这个视图函数添加到routes
列表中:
routes.append(app.view_functions[0].__name__ == 'submit')
6、运行应用
现在,我们可以运行我们的应用了,在命令行中,进入到应用的根目录,然后运行以下命令:
python app.py runserver
7、测试应用
打开浏览器,访问http://127.0.0.1:5000/
,你应该可以看到我们的表单,在文本框中输入你的名字,然后点击提交按钮,你应该会看到一个包含你的名字的消息,如果没有看到消息,请检查你的代码是否有误。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。