1.表单处理
Web 表单是 Web 应用程序的基本功能,它是 HTML 页面中负责数据采集的部件。通常情况下,表单有三个部分组成,分别是表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。
下面通过一个简单的案例来说明使用;
from flask import Flask,render_template,request
app = Flask(__name__)
app.debug = True
@app.route("/show/")
def show():
return render_template("show.html")
@app.route("/handle/",methods=["POST"])
def handle():
# form 表单数据
form_results = request.form
# 显示
username = form_results.get("name")
chinese = form_results.get("chinese")
programming = form_results.get("programming")
description = form_results.get("description")
# 数据
results = {"username":username,
"chinese":chinese,
"programming":programming,
"description":description,
}
return render_template("results.html",results=results)
if __name__ == '__main__':
app.run()
前端模板文件代码,参考如下:
登录
表单显示
姓名:
语文成绩:
编程成绩:
自我评价:
加载成功数据后,展示数据的页面代码如下:
显示结果
结果
{% for key,value in results.items() %}
{{ key }}
{{ value }}
{% endfor %}
在浏览器地址栏输入 http://localhost:5000/show后,显示效果如下:
表单扩展
上述是表单的基本使用,下面我们可以使用 Flash-WTF 表单扩展库(更高效)来实现一个功能有输入用户名、输入密码与确认密码,以及提交按钮的表单。
首先,使用该库需要先进行安装:pip install Flask-WTF==0.14,因为 Flask 与 werkzeug 的兼容性问题,所以还需要安装:pip install werkzeug==0.16.0 。
接着在主目录下创建 loginform.py 文件,编写代码如下;
from flask import Flask,render_template,request,flash
from flask_wtf import FlaskForm
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import DataRequired,EqualTo
app = Flask(__name__)
app.debug = True
密钥
app.config["SECRET_KEY"] = "admin112233"
class LoginForm(FlaskForm):
username = StringField(label=u"用户名:",validators=[DataRequired()])
password = PasswordField(label=u"密码:",validators=[DataRequired()])
repwd = PasswordField(label=u"确认密码:",validators=[DataRequired(),EqualTo("password","两次输入密码不一致!")])
# 提交
submit = SubmitField(label=u"提交")
@app.route("/index/")
def index():
post_form = LoginForm()
return render_template("loginform.html",form=post_form)
@app.route("/login/",methods=["POST","GET"])
def login():
if request.method == "POST":
post_form = LoginForm()
if post_form.validate_on_submit():
name = post_form.username.data
password = post_form.password.data
repwd = post_form.repwd.data
print("姓名:",name)
print("密码:",password)
print("确认密码:",repwd)
flash("欢迎您,%s"%name)
else:
flash("信息有误,请重新输入!!!")
return render_template("hello.html",form=post_form)
if __name__ == '__main__':
app.run()
显示表单页面的代码如下;
Login
登录表单
{{ form.csrf_token() }}
{{ form.username.label }}{{ form.username }}
{{ form.password.label }}{{ form.password }}
{{ form.repwd.label }}{{ form.repwd }}
{{ form.submit() }}
{% for msg in get_flashed_messages() %}
{{ msg }}
{% endfor %}
数据验证成功的页面参考代码如下;
Title
{% for msg in get_flashed_messages() %}
{{ msg }}
{% endfor %}
运行上述程序,在地址栏输入 http://localhost:5000/index 后,效果如下;
Original: https://blog.csdn.net/m0_54143674/article/details/122351962
Author: Jocelyn小熊
Title: Flask 框架(四)— 表单处理
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/749897/
转载文章受原作者版权保护。转载请注明原作者出处!