欢迎访问宙启技术站
智能推送

Python中设置cookie的常用方法——set_cookie()函数详解

发布时间:2024-01-16 06:26:44

在Python中,可以使用set_cookie()函数来设置cookie,该函数用于在HTTP响应头中设置一个或多个cookie值。

set_cookie()函数的语法如下:

set_cookie(name, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False, samesite='Lax')

下面是各个参数的说明:

1. name:cookie的名称。

2. value:cookie的值。

3. max_age:cookie的有效期,以秒为单位。

4. expires:cookie的过期时间,可以是datetime对象或者时间字符串。

5. path:cookie的有效路径,默认为根路径。

6. domain:cookie的有效域,默认为当前域。

7. secure:一个布尔值,表示是否只有在HTTPS连接中才可以发送cookie。

8. httponly:一个布尔值,表示是否将cookie设置为HTTP Only。

下面是一个使用set_cookie()函数设置cookie的示例:

import datetime
from http import cookies

# 创建一个cookie对象
cookie = cookies.SimpleCookie()

# 设置一个名为name的cookie,值为John
cookie['name'] = 'John'

# 设置一个名为age的cookie,值为25,有效期为1天
expire_date = datetime.datetime.now() + datetime.timedelta(days=1)
cookie['age'] = 25
cookie['age']['expires'] = expire_date.strftime('%a, %d-%b-%Y %H:%M:%S GMT')

# 设置一个名为gender的cookie,值为male,有效路径为/user
cookie['gender'] = 'male'
cookie['gender']['path'] = '/user'

# 打印cookie对象
print(cookie.output())

输出结果如下:

Set-Cookie: name=John
Set-Cookie: age=25; expires=Thu, 20-Aug-2020 13:56:07 GMT
Set-Cookie: gender=male; Path=/user

在以上示例中,首先导入了datetime模块和http.cookies模块的SimpleCookie类。

然后,创建了一个cookie对象。

接着,使用cookie['name'] = 'John'语句设置了一个名为name的cookie,值为John

然后,创建一个expire_date对象,表示当前时间加上一天的时间。

接着,使用cookie['age'] = 25cookie['age']['expires'] = expire_date.strftime('%a, %d-%b-%Y %H:%M:%S GMT')语句设置了一个名为age的cookie,值为25,并设置了有效期为一天。

然后,使用cookie['gender'] = 'male'cookie['gender']['path'] = '/user'语句设置了一个名为gender的cookie,值为male,并设置了有效路径为/user

最后,使用print(cookie.output())语句将cookie对象转换为字符串并输出。

从输出结果可以看出,cookie.output()方法将会返回一个包含所有cookie的字符串,每个cookie之间用换行符分隔。每个cookie的格式为Set-Cookie: name=value,其中name是cookie的名称,value是cookie的值。

通过调用浏览器的cookie设置功能,可以将以上输出结果中的每个Set-Cookie值添加到浏览器的cookie中。然后,在浏览器中访问相应的网站时,浏览器会自动将cookie值包含在HTTP请求头中发送给服务器。

以上就是使用set_cookie()函数设置cookie的常用方法和一个示例。通过这个函数,可以很方便地在Python中设置cookie并与浏览器进行交互。