首页 > 解决方案 > fastapi 提取所有路径参数键和值

问题描述

有没有办法可以提取可选路径参数的键值对?

假设我有以下代码:

@app.get("/users")
async def request(userEmail = None, organization = None):

我将获取请求发送到以下网址: http: //127.0.0.1 :8000/users?userEmail=test@test.com&organization=testOrg

有没有办法可以提取可选路径参数的键值对,以便获得

{"userEmail" : "test@test.com", "organization" : "testOrg"}

或者如果http://127.0.0.1:8000/users?userEmail=test@test.com,那么

{"userEmail" : "test@test.com"}

标签: pythonfastapi

解决方案


您可以使用来自 starlette 库的 Request 对象

from fastapi import Request


@app.get("/users")
async def users(request: Request,
                userEmail = None, organization = None):
    print(request.query_params)

查询参数公开为不可变的多字典。

参考https://www.starlette.io/requests/#query-parameters


推荐阅读