Python Falcon - Cookies
Cookie 以文本文件的形式存储在客户的计算机上。 其目的是记住和跟踪与客户使用情况相关的数据,以获得更好的访问者体验和网站统计数据。
一个 Request 对象包含一个 cookie 的属性。 它是客户端传输的所有 cookie 变量及其对应值的字典对象。 除此之外,cookie 还存储其到期时间、路径和站点的域名。
在 Falcon 中,使用 set_cookie() 方法在响应对象上设置 cookie。
resp.set_cookie('cookiename', 'cookievalue')
此外,还可以给出 cookie 秒数和域名的参数 max_age。
import falcon import json from waitress import serve class resource1: def on_post(self, req, resp): resp.set_cookie("user", 'admin') resp.text = "cookie set successfully." resp.status = falcon.HTTP_OK resp.content_type = falcon.MEDIA_TEXT
从命令行调用响应器方法 −
http POST localhost:8000/cookie HTTP/1.1 200 OK Content-Length: 24 Content-Type: text/plain; charset=utf-8 Date: Tue, 26 Apr 2022 06:56:30 GMT Server: waitress Set-Cookie: user=admin; HttpOnly; Secure cookie set successfully.
也可以使用响应对象的append_header() 方法来设置cookie Set-cookie 头。
为了检索 cookie,请求对象具有 request.cookies 属性和 get_cookie_values() 方法。
def on_get(self, req, resp): cookies=req.cookies values = req.get_cookie_values('user') if values: v = values[0] resp.body={"user":v} resp.status = falcon.HTTP_OK resp.content_type = falcon.MEDIA_JSON
response 对象的unset_cookie 方法清除当前请求的cookie。
resp.unset_cookie('user')
对于 ASGI 应用程序,falcon.asgi.Request 实现与 falcon.Request 相同的 cookie 方法和属性。set_cookie() 和 append_header() 的 ASGI 版本是同步的,所以不需要等待它们。