flask-----请求和响应,session

 1 所有web:请求对象,响应对象(go,java,ptyhon)

django:request(每个请求一个request),新手四件套
flask:requset:全局的,但是也是每个请求一个request,新手三件套

2 flask请求对象,全局的request

 request.method  请求的方法
         request.args  get请求提交的数据
         request.form   post请求提交的数据
         request.values  post和get提交的数据总和
         request.cookies  客户端所带的cookie
         request.headers  请求头
         request.path     不带域名,请求路径
         request.full_path  不带域名,带参数的请求路径
         request.url           带域名带参数的请求路径
         request.base_url		带域名请求路径
         request.url_root      域名
         request.host_url		域名
         request.host			服务端地址
         request.files
         obj = request.files['the_file_name']
         obj.save('/var/www/uploads/' + secure_filename(f.filename))

3 flask的响应

	-四件套:
    	-1 直接返回字符串
        -2 返回模板:render_template
        -3 返回重定向:redirect,
        -4返回json格式:jsonify
        
    -响应中写cookie
    	 res = make_response('home') 
          res.set_cookie('yyy', 'yyy', path='/home')
        # 删除cookie
        # res.delete_cookie('key')
    -响应头中写内容
      res = make_response('home')  # res 就是响应对象
      res.headers['xxx'] = 'xxx'

4 session

flask中得session,没有在服务端存储数据的---》后期扩展,可也把session存到redis中

flask中是全局session

from flask import session

-放值:session['key']=value
-取值:session.get('key')
-删除值:session.pop('username', None)

session的运行机制

	'''
    django
    1 生成一个随机字符串
    2 把数据保存到djagno-session表中
    3 把随机字符串返回给前端--》当cookie存到浏览器中了--》浏览器再发请求,携带cookie过来
    4 根据随机字符串去表中查---》转到request.session中
    flask
    1 把数据加密转成字符串: eyJuYW1lIjoibHF6In0.ZMnbJw.ZUceSaD0kGnU97tu9ZWm3380r00
    2 以cookie形式返回给前端---》保存到浏览器中
    3 浏览器再发请求,携带cookie过来
    4 加密符串---》解密---》放到session对象中
    '''
    

源码分析,看运行机制

-flask默认使用:SecureCookieSessionInterface作为session的类
    -请求来了,
        -客户端带了cookie---》取出cookie 中session对应的值
        -使用解密方式对它进行解密
        -放到session对象中
    -请求走了
    	-把用户放到session中得数据
        -加密---》转成字符串--》以cookie形式返回给前端
        
    -SecureCookieSessionInterface的方法e:
    	-open_session:请来来了用
        -save_session:请求走了用

你可能感兴趣的:(flask,flask,python,后端)