• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

web.py cookie使用之cookie设置与获取

python 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论

上一篇文章说到了web.py初探之第一个页面hello word,下面我们继续深入web.py编程,来说一下web.py的cookie设置。

cookie相信学过web编程的人并不陌生,它在web编程中担任着非常重要的角色。用户登录、验证码、session(基于cookie)、语言选择器、身份识别等等都会有cookie的身影。那么怎么样在web.py中设置cookie呢?

其实在web.py中设置cookie非常简单,web.py早已经为我们想到了这一点,提供了一个非常简单有用的函数:

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传输。可选参数

例如:

#设置website的值为www.pythontab.com,有效期60秒web.setcookie("website", "www.pythontab.com", 60)

示例

用web.setcookie() 设置cookie,如下:

class CookieSet:    def GET(self):        i = web.input(age='25')        web.setcookie('age', i.age, 3600)        return "Age set in your cookie"

用 GET方式调用上面的类将设置一个名为age,默认值是25的cookie(实际上,默认值25是在web.input中赋予i.age的,从而间接赋予 cookie,而不是在setcookie函式中直接赋予cookie的)。这个cookie将在一小时后(即3600秒)过期。

web.setcookie()的第三个参数-”expires”是一个可选参数,它用来设定cookie过期的时间。如果是负数,c本文来源gao($daima.com搞@代@#码8网^ookie将立刻过期。如果是正数,就表示cookie的有效时间是多久,以秒为单位。如果该参数为空,cookie就永不过期。

获得Cookies

概述

获取Cookie的值有很多方法,它们的区别就在于找不到cookie时如何处理。

方法1(如果找不到cookie,就返回None):

通过get方法获得

#通过设置的cookie的名字获取cookie,例如website#web.cookies().get("website") web.cookies().get(cookieName)

方法2(如果找不到cookie,就抛出AttributeError异常):

#先把cookie对象赋值给一个变量,然后通过cookie的名字获得#例如:foo.websitefoo = web.cookies()foo.cookieName

方法3(如果找不到cookie,可以设置默认值来避免抛出异常):

#该方法最大的特点就是可以设置cookie的默认值foo = web.cookies(cookieName=defaultValue)#如果不存在该cookieName,就会返回设置的默认cookiefoo.cookieName

如果要确认cookie值是否存在,

可以这样做:

class CookieGet:    def GET(self):        try:             return "Your website name is: " + web.cookies().website        except:             #抛出异常处理             return "Cookie 不存在."

class CookieGet:    def GET(self):        #先进行赋值        website = web.cookies().get('website')        if age:            return "Your website name is: %s" % website        else:            return "Cookie 不存在."

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:web.py cookie使用之cookie设置与获取

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址