我正在尝试使用FastAPI和MongoDB创建一个API,它只有一个GET
方法,我不知道如何做到这一点。
我的应用程序已经使用一个转换为csv的txt文件向MongoDB填充了一个巨大的数据库,并包含了MongoDB集合中的所有数据,我试图做的是:在端点路由中提供一个邮政编码(例如localhost:8000/cep/123456789
)我的应用程序将返回MongoDB集合中的所有信息,这些信息是该邮政编码的一部分,如street,city
@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是为了练习和学习。如果有人能帮忙,我会很高兴的
谢谢
您需要做的第一件事是将db初始化与实际路由分开。FastAPI显示了一个example of how to do that,只需将coach初始化行替换为Mongo所需的初始化行即可
其次,您(通常)将有一个
database
文件夹,其中包含您将在路由中使用的代码。这是layered architecture approach的一部分。从这里,您可以定义一个模式,或者从刚刚创建的数据层中定义的类中调用一个方法例如(在更简化的方法中),我们将在路由中调用
cep_db.findAll()
。此方法可以存在于文件database/cep.py
中名为Cep
的类中最后,请参阅此项目https://github.com/markqiu/fastapi-mongodb-realworld-example-app以了解工作示例
相关问题 更多 >
编程相关推荐