13

情况:

我正在试探性地考虑使用 Django 的情况

  1. 提供 HTML(通过 Django 的模板)
  2. 提供 Django 项目中的所有静态文件,如 CSS、JS

我使用 Django 的意图在这里停止。在将 javascript 文件下载到客户端后,它们使用 RESTful API(Ajax 方式)与 Flask 后端进行通信。


为什么是两个框架?为什么会这样?

我正在合作的这个项目的前端人员非常了解 Django,我想我主要想使用他的 CSS / HTML 模板 / jquery 技能。

我想拥有一个独立的 API 服务器,我觉得 Flask 是满足我需求的理想选择(从构建 API 服务的角度来看)。

我猜人们会建议“为什么不让 Django 的人使用 Jinga2 进行模板?” (这样,我们可以取消Django)我想我现在的答案是:我不希望他投入太多时间(学习)

我猜人们会建议“为什么不使用 Django 来提供 Restful API 调用?” (这样,我们可以取消 Flask)我想我现在的答案是:我(作为实现 API 逻辑的人)喜欢 Flask。


我的问题

短一:这可行吗?还是这听起来很疯狂?

龙一:能否请您指导一下?

谢谢,

4

4 回答 4

15

我参加聚会有点晚了,但应用程序调度应该对此有所帮助。根据文档中的介绍,事情是这样的:

应用程序调度是在 WSGI 级别组合多个 Flask 应用程序的过程。您不仅可以将 Flask 应用程序组合成更大的应用程序,还可以组合成任何 WSGI 应用程序。如果需要,这甚至可以让您在同一个解释器中并排运行 Django 和 Flask 应用程序。

于 2015-04-02T08:54:09.493 回答
10

如果我是你,我会从设计师那里获取 Django 模板并将它们转换为 Jinja2,然后 100% 在 Flask 中构建应用程序。但是既然你问...

这是可行的吗?还是这听起来很疯狂?

两者都是:)

你能不能给一些指导?

这是一个简单的方法:

您编写了两个应用程序,一个在 Flask 中,一个在 Django 中。假设您解决了在尝试共享数据库或其他资源时遇到的所有问题,现在您运行了两个应用程序,每个应用程序都有自己的 Web 服务器,并且每个都在不同的端口上侦听请求。

您现在将代理 Web 服务器作为您的前端 Web 服务器连接到外部世界,并根据 URL 将来自客户端的请求代理到一个或另一个应用程序。您可以使 Flask 应用程序的所有 URL 都具有 format http://hostname/api/...,然后关闭apiURL 中的 以分离代理服务器中的请求并将它们提供给适当的应用程序。

因为从外部来看,所有请求都转到相同的主机名和端口(代理服务器的),所以跨站点脚本编写不会有任何问题。

于 2013-06-22T01:45:08.080 回答
1

Jinja 和 Django 非常相似,你真的需要告诉你的 Django 开发人员只使用 Jinja。您将为该项目的成功增加许多复杂性。

没有 Django 开发人员,只有开发人员。

于 2013-06-22T02:09:20.417 回答
1

您可以使用 Django 使用 Django 模板创建 HTML,并通过 Flask 提供它们。这是可行的。

于 2021-04-23T12:09:31.923 回答