Pra*_*K M 9 python cookies http starlette fastapi
当有人点击 API 时是否可以获取 cookie?我需要读取每个请求的cookie。
@app.get("/")
async def root(text: str, sessionKey: str = Header(None)):
print(sessionKey)
return {"message": text+" returned"}
if __name__ == "__main__":
uvicorn.run("main:app", host="0.0.0.0", port=5001 ,reload=True)
Run Code Online (Sandbox Code Playgroud)
使用该Request对象获取您想要的 cookie,如Starlette 文档中所述中所述。
from fastapi import Request\n\n@app.get(\'/\')\nasync def root(request: Request):\n return request.cookies.get(\'sessionKey\')\nRun Code Online (Sandbox Code Playgroud)\n使用该参数,如FastAPI 文档Cookie中所述。附带说明一下,下面的示例使用类型将 cookie 参数定义为可选;但是,还有其他方法可以做到这一点(例如,在Python 3.10+中)\xe2\x80\x94查看此答案和此答案以获取更多详细信息。Union[str, None]str | None
from fastapi import Cookie\nfrom typing import Union\n\n@app.get(\'/\')\nasync def root(sessionKey: Union[str, None] = Cookie(None)):\n return sessionKey\nRun Code Online (Sandbox Code Playgroud)\n
您可以按照与访问示例中的标头相同的方式执行此操作(请参阅文档):
from fastapi import Cookie
@app.get("/")
async def root(text: str, sessionKey: str = Header(None), cookie_param: int | None = Cookie(None)):
print(cookie_param)
return {"message": f"{text} returned"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9670 次 |
| 最近记录: |