我想使用 NoSQL 后端和基于 Python 的开源框架来构建 REST API。该 API 将在云环境中运行,目标是使其与云无关并且能够部署在任何地方。它必须对后端数据库技术有一些抽象。我发现 Django REST Framework 正是我正在寻找的,但 Django ORM 仅支持 RDBMS。为了通过 Django 启用 NoSQL 支持,似乎已经开发了一些开源包,但这些项目已被放弃。
我知道在技术上可以将 Amazon DynamoDB 或 Azure Cosmos DB 与 Django REST Framework 结合使用,但由于它未得到官方支持,因此听起来需要自定义代码并偏离标准配置才能使其正常工作。
- 是否有人使用带有 Django REST 框架的 NoSQL 后端运行供生产使用的 API?
- 使用 Django REST 框架,是否可以抽象后端数据库连接以支持不同的 NoSQL 数据库类型?
- 像 Flask 这样的框架是否更适合使用这种类型的后端创建 REST API?
- 如果 Django REST 框架无法满足这些要求,是否有其他可用的 REST 框架可以提供所需的功能?
最佳答案
可以运行 Django + MongoDB,但这不是一个好主意。
主要原因是Django没有对Mongodb的官方支持。有一个名为 Djongo 的包,它非常不可靠且未完成,它允许您使用 Django 的 ORM,但有很多缺陷。您可以查看number of issues into this github repository .
相反,您可以使用 PyMongo
将 django 与 mongodb 连接,但请记住,您必须原始执行查询。
此外,就dealing with different databases in django而言,我已经做了这样的事情,但是使用 Postgres 和 mongodb,你必须创建一个 Router 类来管理连接。
在我看来,我会使用 Flask 并看看 FastAPI,它几乎与 Flask 类似,但显然有更好的方法来创建 API。
关于python - 使用基于 Python 的开源框架和 NoSQL 后端构建 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73421051/