一、使用Flask处理表单
表单是搜集用户数据信息的各种表单元素的集合区域,它的作用是实现用户和服务器的数据交互。通过表单搜集客户端输入的数据信息,然后提交到网站服务器进行处理(搜集录入/比对验证等)。Form表单是Web应用中最基础的一部分,Form-WTF扩展提供了良好的支持,这里介绍使用Flask处理通用表单和Flask-WTF表单处理方法。
1、使用Flask处理通用表单
对表单没有进行必要的保护措施
2、Flask-WTF表单处理方法。
1)启用CSRF保护
Flask-WTF提供了对所有Form表单免受跨站请求伪造(CSRF)攻击的技术支持;
编写config.py配置文件 :
SECRET_KEY = "zya123456789"
CSRF_ENABLED = True
其中,SECRET_KEY用来建立加密的令牌,用于验证Form表单提交,可以设置复杂些。
app.py文件:
from flask import Flask,flash
from flask import url_for,render_template
# from flask_wtf.csrf import CSRFProtect
#导入定义的BaseLogin
from forms import BaseLogin
import config
app = Flask(__name__)
app.config.from_object(config)
#定义处理函数和路由规则,接收GET和POST请求
@app.route('/login',methods=('POST','GET'))
def baselogin():
form=BaseLogin()
#判断是否是验证提交
if form.validate_on_submit():
#跳转
flash(form.name.data+'|'+form.password.data)
return '表单数据提交成功!'
else:
#渲染
return render_template('login.html',form=form)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True)
form.py文件:
from flask_wtf import Form #引入Form基类
from wtforms import StringField,PasswordField #引入Form元素父类
from wtforms.validators import DataRequired,Length #引入Form验证父类
class BaseLogin(Form): #登录表单类,继承与Form类
#用户名
name=StringField('name',validators=[DataRequired(message="用户名不能为空")
,Length(6,16,message='长度位于6~16之间')],render_kw={'placeholder':'输入用户名'})
#密码
password=PasswordField('password',validators=[DataRequired(message="密码不能为空")
,Length(6,16,message='长度位于6~16之间')],render_kw={'placeholder':'输入密码'})
二、使用flask上传文件
三、Cookie的使用
Cookies是一种能够让网站服务器把少量数据存储到客户端的硬盘或者内存,或是从客户端的硬盘读取数据的一种技术。当再次浏览某网站时,浏览器将存放于本地的用户信息递交给服务器,服务器就可以识别用户的身份。
四、Session的使用
Session是基于Cookie实现的,保存在服务端的键值对中
五、钩子函数的使用
有时需要在正常执行代码的前、中、后时期,强行执行一段我们想要执行的代码,实现这种功能的函数,就称为钩子函数。其实质就是用特定装饰器装饰的函数。