APCDE 2019-10-22
一:表单
表单用于注册,修改用户数据等场景。
flask-wtf提供了一个包,可以创建表单:pip install flask-wtf
为了防止跨域请求,flask_wtf自己生成一个秘钥,用秘钥生成加密口令,然后用口令验证表单中的数据真伪(是否被篡改过)
from flask import Flask from flask import request from flask import redirect from flask.ext.script import Manager from flask import render_template app = Flask(__name__) app.config["secret_key"] = "hard to guess" # 加密的秘钥 # 通过app.config配置到项目的app的配置文件中,字典类型 @app.route("/user/<id>") def user_name(id): if id == "1": li = ["zhang","wang","li","zhao"] return render_template("user.html",comments=li) else: return "不符合" if __name__ == "__main__": app.run(debug=True)
注意:为了增强安全性,密钥不应该直接写入代码,而要保存在环境变量中 ,以后会进行这样设置。
例如一个简单的web表单
from flask.ext.wtf import Form # Form类的来源 from wtforms import StringField, SubmitField from wtforms.validators import Required class NameForm(Form): # 每个web表单类都继承Form类 # StringField()普通的字符串输入文本框,validators=[],指定了一个验证函数组成的列表,Required()验证字段不能为空。 name = StringField(‘What is your name?‘, validators=[Required()]) # SubmitField()点击提交按钮 submit = SubmitField(‘Submit‘)
表单类的字段类型为: