Falsk web传递数据--response,cookie

第一: 什么是response 和cookie

falsk 是基于Browser/Serve端开发, S端是服务器,B端是就是浏览器的前端。服务器如何响应request 呢,

其中的关键因素就是response.

所有返回前台的内容其实都应该是Response的对象或者其子类,我们看到如果返回的是字符串直接可以写成return u'字符串内容'的形式,但是其实这个字符串也是经过了Response包装的:return Response(u'字符串').

我们有时候需要返回数组、字典之类的数据,但是数组或者字典这些数据是不能直接return的。这个时候怎么办呢?答案就是你必须将数组或字典转换成json后再返回(这就是为什么我们做接口测试的时候传参前用json.loads()将字符串转换成字典的原因了),因为json就是一个字符串

make_response 它可以传递三个参数 第一个还是一个字符串,第二个传状态码,第三个传请求头.

cookie 是存储数据的一种方式,

什么是cookie?如果单单从数据结构的角度来说,它可以被理解成用来保存数据的一个dictionary,由一组组键值对组成.如果从作用上来说,我们知道Http协议是一种无状态的协议.什么叫无状态呢,就是本次的客户端请求不会保留上一次客户端请求的状态,简单点说就是这样会要求我们每次在浏览器中点开一个网站的链接都会输一次账户和密码.cookie就是用来解决这个问题的.

        为了解决上述问题,我们第一次登录web服务器,服务端就会在它的响应中的Set-Cookie字段中发送一些键值对,这就包括一个Session ID以及其他一些信息(也包括我们自定义的cookie中的键值对),并告诉客户端在本地缓存这个cookie.然后客户端以后进行链接时每次都会发送这个Session ID,服务器一看是哪个Session ID就知道是哪个客户端发起的链接了,就不会要求我们再次输账户和密码验证了.

        我们在flask中自定义cookie,实际上就是在响应Response的Set-Cookie字段中增加我们自定义的键值对.而获取cookie,就是通过请求Request中通过键获取其对应的值.

 

第二:设置cookie 和response


# -*- coding: utf-8 -*-
#!/usr/bin/python
# coding: utf-8
from flask import Flask,request,Response,make_response,render_template

app = Flask(__name__)
@app.route('/set_cookie')
def set_cookie():
    response=make_response('Hello World')
    print(response)
    response.set_cookie('Name','Hyman')
    return response
@app.route('/get_cookie')
def get_cookie():
    print("666666666666666")
    name=request.cookies.get('Name')
    print("name:",name)
    return name

@app.route('/get_template')
def get_template():
    return render_template('test.html')
@app.route('/del_cookie')
def del_cookie():
    response=make_response('delete cookie')
    response.set_cookie('Name','',expires=0)
    return response
@app.route('/del_cookie2')
def del_cookie2():
    response=make_response('delete cookie2')
    response.delete_cookie('Name')
    return response

if __name__ == '__main__':
    app.run()

第三:个人心得:

      cookie 是存储数据的一种方式,而response 是一种反馈。因此反馈可以设置cookie ,也可以删掉cookie。

第四:返回一个页面则需要

      render_template()    

 

 

 

 

 

参考:https://www.cnblogs.com/captainmeng/p/8649113.html

        https://blog.csdn.net/hyman_c/article/details/53555789

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值