# 表单
# from flask import *
# app = Flask(__name__)
# app.config["SECRET_KEY"]="sadasdas"
# @app.route("/")
# def index():
# u_n = request.cookies.get(‘u_name‘)
# u_n1 = session.get("u_name")
# return "%sqq登陆%s"%(u_n1,u_n)
#
#
# @app.route("/register",methods=[‘POST‘,‘GET‘])
# def register():
# # 判断是什么请求
# if request.method == "POST":
# u_name = request.form.get(‘us_name‘)
# pws1 = request.form.get(‘password1‘)
# pws2 = request.form.get(‘password2‘)
# # 如果这三个参数有一个为空则提示参数不足
# if not all([u_name,pws1,pws2]):
# # 闪现返回到前端页面
# flash(‘参数不足‘)
# elif pws1 == pws2:
# response = make_response("qqq")
# response.set_cookie("u_name",u_name)
# response.set_cookie("pws1", pws1)
# session["u_name"] = u_name
# session["pws1"] = pws1
# return response
# return render_template("demo1.html")
# if __name__ == ‘__main__‘:
# app.run(debug=True,port=8884)
# WTF表单
# StringField 文本字段
# TextAreaField 多行文本字段
# PasswordField 密码文本字段
# HiddenField 隐藏文件字段
# DateField 文本字段,值为 datetime.date 文本格式
# DateTimeField 文本字段,值为 datetime.datetime 文本格式
# IntegerField 文本字段,值为整数
# DecimalField 文本字段,值为decimal.Decimal
# FloatField 文本字段,值为浮点数
# BooleanField 复选框,值为True 和 False
# RadioField 一组单选框
# SelectField 下拉列表
# SelectMutipleField 下拉列表,可选择多个值
# FileField 文件上传字段
# SubmitField 表单提交按钮
# FormField 把表单作为字段嵌入另一个表单
# FieldList 一组指定类型的字段
# WTForms常用验证函数
# 验证函数 说明
# DataRequired 确保字段中有数据
# EqualTo 比较两个字段的值,常用于比较两次密码输入
# Length 验证输入的字符串长度
# NumberRange 验证输入的值在数字范围内
# URL 验证URL
# AnyOf 验证输入值在可选列表中
# NoneOf 验证输入值不在可选列表中
# from flask import *
# # 导入wtf扩展表单类
# from flask_wtf import FlaskForm
# # 导入自定义字段
# from wtforms import StringField,SubmitField,PasswordField
# # 导入验证器
# from wtforms.validators import DataRequired,EqualTo
# app = Flask(__name__)
# # 关闭csrf
# # app.config["WTF_CSRF_ENABLED"]=False
# app.config["SECRET_KEY"]="sadasdas"
# class usFrom(FlaskForm):
# username = StringField("用户名:",validators=[DataRequired("请输入用户名")],render_kw={"placeholder":"请输入"})
# password = PasswordField("密码:",validators=[DataRequired("请输入密码")])
# password2 = PasswordField("确认密码:",validators=[DataRequired("请输入密码"),EqualTo("password","请确认密码")])
# submit = SubmitField(‘注册‘)
#
# @app.route(‘/wtf‘,methods=["GET","POST"])
# def Fwtf():
# form_wtf = usFrom()
# if form_wtf.validate_on_submit():
# # 如果代码进入说明表单通过验证
# u_name = request.form.get(‘username‘)
# pws1 = request.form.get(‘password‘)
# pws2 = request.form.get(‘password2‘)
# print( u_name,pws1,pws2)
# return "ok"
# else:
# if request.method =="POST":
# flash("参数不完整")
# return render_template("demo.html",form =form_wtf)
# @app.route("/")
# def index():
# return "注册页面"
# if __name__ == ‘__main__‘:
# app.run(debug=True,port=8884)
下面是上面代码中的两个网页:
demo1:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>QQ注册页面</title>
</head>
<body>
<form method="post" >
<label>名字:</label><input type="text" name="us_name"><br/>
<label>密码:</label><input type="password" name="password1"><br/>
<label>确认密码:</label><input type="password" name="password2"><br/>
<input type="submit" value="注册">
{#接flash#}
</form>
{% for messger in get_flashed_messages() %}
{{ messger }}
{% endfor %}
</body>
</html>
demo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>wtf</title>
</head>
<body>
<form method="post">
{{ form.csrf_token }}
{{ form.username.label }}{{ form.username }}<br/>
{{ form.password.label }}{{ form.password }}<br/>
{{ form.password2.label }}{{ form.password2 }}<br/>
{{ form.submit }}<br/>
</form>
{% for messger in get_flashed_messages() %}
{{ messger }}
{% endfor %}
</body>
</html>
原文:https://www.cnblogs.com/zhangshuntao123/p/11631392.html