如何使用FastAPI从MongoDB上的集合中获得结果?

问题描述 投票:0回答:1

我正在尝试使用FastAPI和MongoDB创建一个仅具有GET方法的API,但我不知道如何执行此操作。我的应用程序已经使用转换为csv的txt文件为MongoDB填充了巨大的数据库,其中包括MONGODB集合上的所有数据,而我想做的是:在端点路由中提供邮政编码(例如localhost:8000/cep/123456789 ),我的应用程序将返回来自我的MongoDB集合的所有信息,这些信息是该邮政编码(例如街道,城市)的一部分。

@app.get('/cep/{cep}')
def find_ceps():
    mongo_uri = pymongo.MongoClient("mongodb://root:example@localhost:27017/")
    db_name = mongo_uri["cep4free"]
    col = db_name["cep4free"]

    for i in col.find({}):
        return i


cep = find_ceps()
return cep

我试图这样做,但是它不起作用,我也不知道如何使用GET方法返回此值。我也是Python和FastAPI的新手,我正在编写此API以便进行实践和学习。如果有人可以帮忙,我会很高兴。

谢谢!

python mongodb pymongo mongoengine fastapi
1个回答
0
投票

您需要做的第一件事是将数据库初始化与实际路由分开。 FastAPI显示example of how to do that,只需将Couch初始化行替换为您所需的Mongo。

第二,您(通常)将有一个database文件夹,其中包含您将在路线中使用的代码。这是layered architecture approach的一部分。在这里,您可以定义一个架构,或者只从cep_db.findAll()之类的类中调用一个方法。

最后,请参见此项目https://github.com/markqiu/fastapi-mongodb-realworld-example-app以获取工作示例。

© www.soinside.com 2019 - 2024. All rights reserved.