Python中设置cookie的常用方法——set_cookie()函数详解
在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'] = 25和cookie['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并与浏览器进行交互。
