Skip to content

cookie参数

您可以像定义 QueryPath 参数一样定义 Cookie 参数.

首先,导入Cookie:

from typing import Optional

from flask_sugar import Sugar, Cookie

app = Sugar(__name__)


@app.get("/")
def index(cookie_value: Optional[str] = Cookie(None)):
    return {"cookie_value": cookie_value}

然后使用与 PathQuery 相同的结构声明 cookie 参数.

第一个值是默认值,您可以传递所有额外的验证或注释参数:

from typing import Optional

from flask_sugar import Sugar, Cookie

app = Sugar(__name__)


@app.get("/")
def index(cookie_value: Optional[str] = Cookie(None)):
    return {"cookie_value": cookie_value}

技术细节

CookiePathQuery 的“姐妹”类。 它们继承自 Param 类.

但请记住,当你从 flask_sugar 中导入 QueryPathCookie 等时,这些实际上是返回特殊类的函数.

Info

要声明cookie,您需要使用Cookie,否则参数将被解释为查询参数.

可能会收到具有多个值的同一个cookie.

您可以使用类型声明中的列表来定义这些情况.

您将把 cookie 中的值分割为 Python的list.

例如, 声明一个具有多个值的cookie values, 你可以这样写:

from flask_sugar import Sugar, Cookie

app = Sugar(__name__)


@app.get("/")
def index(values: List[str] = Cookie(None)):
    return {"values": values}

你将发送一个这样的cookie与视图函数通信:

values: foo,bar

响应将类似于:

{
    "values": [
        "bar",
        "foo"
    ]
}

回顾

使用Cookie声明cookie,使用与QueryPath相同的通用模式.