Django、FastAPI 和 DRF
Django, FastAPI and DRF
我想做一个项目,它使用 Django 作为后端,PostgreSQL 作为数据库,FastAPI 和用于 REST 的 Django REST Framework。
只用 Django、DRF 和 Postgres 做一个项目没有看到任何问题,但同时谈到 FastAPI 和 DRF 时会遇到困难。
所以将Postgres连接到Django是没有问题的,为DRF做endpoints也是没有问题的。
但是我怎样才能连接 fastapi 呢?在哪里放置端点以及如何 运行 所有这些东西在一起?
在某些示例中,我看到 FastAPI isntance 在 WSGI.py 中启动,然后服务器 运行s 从调用这样的命令开始:
uvicorn goatfish.wsgi:app
但我不确定当我混合使用的不仅仅是 Django 和 FastAPI 时它是否会像这样工作。
我想使用 FastAPI 进行光学字符识别,使用 DRF 进行用户注册、登录等。
关于制作具有这种结构的项目有什么建议吗?或者,也许有人在 github 上有此类项目的存储库?
编辑:希望在这里看到答案,但现在我只看到制作经典 Django + DRF 应用程序的解决方案,然后使用端点制作 FastAPI 应用程序,运行 这些应用程序在不同的端口上并执行一些操作链:
我们从 django 应用程序加载图像到表单,当我们提交此表单时,我们向 FastAPI 端点发送 POST 请求,这将 运行 OCR 处理然后 return JSON 识别文本,然后将此 JSON 发送到 Django 回调端点,该端点将对其进行处理并保存到数据库中。
你怎么看这样的事情?
好吧,经过几天的思考,我决定,我问的问题毫无意义:)
这里要说说微服务架构,这种问题是不存在的。我们所需要做的就是使用任何框架(Django、FastAPI、Flask、Ruby 等)在我们的项目中提供尽可能多的服务,并在它们之间建立连接。
例如,我可以 运行 我的主 Django 服务器在端口 8000 上,我的 FastAPI 服务器在端口 5000 上,我的 DRF 服务在端口 6000 上。然后我可以从我的主 Django 服务器向FastAPI 和 DRF。
这是一个非常简单的示例,现在我正在深入研究微服务架构,但这绝对是我需要的。
我想,你可能会:
- fastapi+django 的组合。但这只是为了替换 DRF 并使用 fastapi 作为 rest 框架。
- 微服务。您可以在一个端口上 运行 Django,快速 api - 另一个。两者都可以使用一个共享数据库。
- 微服务。全部来自第 2 点,但一些 api 任务(例如 sign-in/sign-up)在 Django 上和另一个 - 在 fastapi.
上
我想做一个项目,它使用 Django 作为后端,PostgreSQL 作为数据库,FastAPI 和用于 REST 的 Django REST Framework。 只用 Django、DRF 和 Postgres 做一个项目没有看到任何问题,但同时谈到 FastAPI 和 DRF 时会遇到困难。 所以将Postgres连接到Django是没有问题的,为DRF做endpoints也是没有问题的。 但是我怎样才能连接 fastapi 呢?在哪里放置端点以及如何 运行 所有这些东西在一起? 在某些示例中,我看到 FastAPI isntance 在 WSGI.py 中启动,然后服务器 运行s 从调用这样的命令开始:
uvicorn goatfish.wsgi:app
但我不确定当我混合使用的不仅仅是 Django 和 FastAPI 时它是否会像这样工作。 我想使用 FastAPI 进行光学字符识别,使用 DRF 进行用户注册、登录等。 关于制作具有这种结构的项目有什么建议吗?或者,也许有人在 github 上有此类项目的存储库?
编辑:希望在这里看到答案,但现在我只看到制作经典 Django + DRF 应用程序的解决方案,然后使用端点制作 FastAPI 应用程序,运行 这些应用程序在不同的端口上并执行一些操作链: 我们从 django 应用程序加载图像到表单,当我们提交此表单时,我们向 FastAPI 端点发送 POST 请求,这将 运行 OCR 处理然后 return JSON 识别文本,然后将此 JSON 发送到 Django 回调端点,该端点将对其进行处理并保存到数据库中。 你怎么看这样的事情?
好吧,经过几天的思考,我决定,我问的问题毫无意义:) 这里要说说微服务架构,这种问题是不存在的。我们所需要做的就是使用任何框架(Django、FastAPI、Flask、Ruby 等)在我们的项目中提供尽可能多的服务,并在它们之间建立连接。 例如,我可以 运行 我的主 Django 服务器在端口 8000 上,我的 FastAPI 服务器在端口 5000 上,我的 DRF 服务在端口 6000 上。然后我可以从我的主 Django 服务器向FastAPI 和 DRF。 这是一个非常简单的示例,现在我正在深入研究微服务架构,但这绝对是我需要的。
我想,你可能会:
- fastapi+django 的组合。但这只是为了替换 DRF 并使用 fastapi 作为 rest 框架。
- 微服务。您可以在一个端口上 运行 Django,快速 api - 另一个。两者都可以使用一个共享数据库。
- 微服务。全部来自第 2 点,但一些 api 任务(例如 sign-in/sign-up)在 Django 上和另一个 - 在 fastapi. 上