python3 web_cookie.py

"""
web_cookie.py
功能:通过 web.py 操作 cookie.
参考:http://webpy.org/cookbook/cookies.zh-cn
知识点:
1.
setcookie(name, value, expires="", domain=None, secure=False):
name (string) - Cookie的名称,由浏览器保存并发送至服务器。
value (string) -Cookie的值,与Cookie的名称相对应。
expires (int) - Cookie的过期时间,这是个可选参数,单位:秒。
它决定cookie有效时间是多久。它必须是一个整数,而绝不能是字符串。
domain (string) - Cookie的有效域-在该域内cookie才是有效的。
一般情况下,要在某站点内可用,该参数值该写做站点的域(比如.webpy.org),而不是站主的主机名(比如wiki.webpy.org)
secure (bool)- 如果为True,要求该Cookie只能通过HTTPS传输。
web.setcookie()的第三个参数-”expires”是一个可选参数,它用来设定cookie过期的时间。
如果是负数,cookie将立刻过期。如果是正数,就表示cookie的有效时间是多久,以秒为单位。
如果该参数为空,cookie就永不过期。
2.
获得Cookies
2.1
cookie = web.cookies().get('age')
print("cookie:", cookie)
# cookie: 25
如果找不到cookie,就返回None
3.
个人理解:
cookie 是由服务设置的,浏览器访问服务的时候提交给服务的,自带的(某框架实现的)。
cookie 过期会自动被清除,即,不能 get 到。
cookie 的保存是 根据有效域的,如上边所述(貌似域名 != ip:port)。

测试url:
1.设置 cookie.
http://127.0.0.1:8080/cookieSet
2.获取 cookie.
http://127.0.0.1:8080/cookieGet
"""
import web

urls = (
    "/cookieSet", "CookieSet",
    "/cookieGet", "CookieGet",
)


class CookieSet:
    def GET(self):
        i = web.input(age='25')
        # print("i:", i)
        # i: <Storage {'age': '25'}>
        # print("i.age:", i.age)
        # i.age: 25
        # print(type(i.age))
        # <class 'str'>
        web.setcookie('age', i.age, 60)
        return "Age set in your cookie."


class CookieGet:
    def GET(self):
        cookie = web.cookies().get('age')
        print("cookie:", cookie)
        # cookie: 25
        if cookie:
            return "cookie: " + cookie


if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

发布了198 篇原创文章 · 获赞 58 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_42193179/article/details/103719542