在Python3.0中处理web请求5-处理cookie

在处理web请求时,处理Cookie是非常重要的一个环节,要处理用户session首先就要处理用户提交的cookie。在python(wsgi)中并没有直接获取cookie值的方法,以下是我今天参照类库帮助写的一个获取用户发送来的cookie的demo:

首先先从服务器发送cookie数据到客户端:

def application(env,start_response):
    cookie = SimpleCookie()
    cookie["name"] = urllib.parse.quote("phyeas")
    cookie["name"]["expires"]=1000000
    cookie["name"]["path"]="/"    
    start_response("200 OK",[("Content-Type","text/html;charset=UTF-8"),('Set-Cookie', cookie.output(header=""))])
    return ["Hello World"]

 

 以下是读取这些Cookie数据:

def application(env,start_response):
    cookie = SimpleCookie(env.get("HTTP_COOKIE",""))
    name=cookie.get("name","")
    print(name.key+" , "+name.value)
    start_response("200 OK",[("Content-Type","text/html;charset=UTF-8")])
    return ["Hello World"]

 得到输出:

Http Service on port 8080....
name , phyeas
localhost - - [06/Apr/2009 01:31:42] "GET / HTTP/1.1" 200 11

需要注意的是必须设置cookie的expires,而且在output的时候需要将header设置为"",否则将默认输出'Set-Cookie'

还有就是env中获取"HTTP_COOKIE"的时候不一定有这个key

要导入的包有:

from http.cookies import SimpleCookie
import urllib

  今天就唠到这……睡觉去

 

PS:如果没用wsgi,对应的header名称应是"cookie"……

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值