- Python Falcon 教程
- Python Falcon - 首頁
- Python Falcon - 簡介
- Python Falcon - 環境搭建
- Python Falcon - WSGI vs ASGI
- Python Falcon - Hello World (WSGI)
- Python Falcon - Waitress
- Python Falcon - ASGI
- Python Falcon - Uvicorn
- Python Falcon - API 測試工具
- 請求 & 響應
- Python Falcon - 資源類
- Python Falcon - 應用類
- Python Falcon - 路由
- Falcon - 字尾響應器
- Python Falcon - Inspect 模組
- Python Falcon - Jinja2 模板
- Python Falcon - Cookie
- Python Falcon - 狀態碼
- Python Falcon - 錯誤處理
- Python Falcon - Hook
- Python Falcon - 中介軟體
- Python Falcon - CORS
- Python Falcon - WebSocket
- Python Falcon - SQLAlchemy 模型
- Python Falcon - 測試
- Python Falcon - 部署
- Python Falcon 有用資源
- Python Falcon - 快速指南
- Python Falcon - 有用資源
- Python Falcon - 討論
Python Falcon - Cookie
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 物件具有 **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
響應物件的 **unset_cookie** 方法清除當前請求的 Cookie。
resp.unset_cookie('user')
對於 ASGI 應用,**falcon.asgi.Request** 實現與 **falcon.Request** 相同的 Cookie 方法和屬性。 ASGI 版本的 **set_cookie()** 和 **append_header()** 是同步的,因此不需要等待它們。
廣告