Python Flask应用程序与Node.JS应用程序

Python Flask应用程序与Node.JS应用程序,python,node.js,flask,Python,Node.js,Flask,我为我们公司使用的系统编写了一个Flask web应用程序。但是,我们还有另一个web应用程序,它运行在Node.JS上。“问题”是我的同事在节点上编写所有内容,而我在Python中编写所有内容 我们希望在一个网页上实现这两个应用程序-例如: 我的应用程序将在example.com/assistant上运行 他的应用程序将在example.com/app1和example.com/app2上运行 我们怎样才能做到这一点?我们能否以某种方式实现我与他的模板一起使用的模板,反之亦然 提前谢谢你 V为

我为我们公司使用的系统编写了一个Flask web应用程序。但是,我们还有另一个web应用程序,它运行在Node.JS上。“问题”是我的同事在节点上编写所有内容,而我在Python中编写所有内容

我们希望在一个网页上实现这两个应用程序-例如:

  • 我的应用程序将在example.com/assistant上运行
  • 他的应用程序将在example.com/app1和example.com/app2上运行
  • 我们怎样才能做到这一点?我们能否以某种方式实现我与他的模板一起使用的模板,反之亦然

    提前谢谢你


    V

    为来自同一域的不同应用提供服务

    您可以使用将请求定向到基于ACL规则的特定服务

    您可以使用
    path\u beg
    规则将以特定路径开头的任何请求定向到相应的服务器。见下面的例子

    /etc/haproxy/haproxy.cfg

    在应用程序之间共享模板代码

    这将更加困难,因为您需要双方在某种格式上达成一致,这种格式需要是语言和框架不可知的,并且可能逻辑更少

    Mustach声称是“呈现无逻辑视图的框架无关方式”。几年前我很少使用它,所以这是我第一次想到的,不过你应该对此做更多的研究,也许有更合适的


    问题是要让模板始终与应用程序保持同步,而不是破坏视图的功能。如果模板发生更改,则需要测试使用此模板文件的所有应用程序。此外,您可能会在不同时间阻止他人更新您的应用程序,因为如果其中一人更改模板文件,则您必须达成共识,更新所有相关应用程序,并一次性部署它们。

    为同一域中的不同应用程序提供服务

    您可以使用将请求定向到基于ACL规则的特定服务

    您可以使用
    path\u beg
    规则将以特定路径开头的任何请求定向到相应的服务器。见下面的例子

    /etc/haproxy/haproxy.cfg

    在应用程序之间共享模板代码

    这将更加困难,因为您需要双方在某种格式上达成一致,这种格式需要是语言和框架不可知的,并且可能逻辑更少

    Mustach声称是“呈现无逻辑视图的框架无关方式”。几年前我很少使用它,所以这是我第一次想到的,不过你应该对此做更多的研究,也许有更合适的


    问题是要让模板始终与应用程序保持同步,而不是破坏视图的功能。如果模板发生更改,则需要测试使用此模板文件的所有应用程序。此外,您可能会在不同的时间阻止他人更新您的应用程序,因为如果其中一人更改了模板文件,那么您必须达成共识,更新所有相关应用程序,并一次性部署它们。

    总之,不行。您和您的同事必须在此处进入同一页面。总之,不。你和你的同事必须站在同一页上。这实际上很有道理!明天我们将尝试haproxy方法。如果这不起作用,我们将看看是否可以有其他东西。谢谢!这其实很有道理!明天我们将尝试haproxy方法。如果这不起作用,我们将看看是否可以有其他东西。谢谢!
    # only relevant part of the config file
    # assumes all apps are on one machine
    frontend http-in
      bind *:80
      acl py_app1 path_beg /assistant
      acl node_app1 path_beg /app1
      acl node_app2 path_beg /app2
      default_backend main_servers
    
    backend py_app1
      server flask_app 127.0.0.1:5000
    
    backend node_app1
      server nodejs1 127.0.0.1:4001
    
    backend node_app2
      server nodejs2 127.0.0.1:4002
    
    backend main_servers
      server other1 127.0.0.1:3000 # nginx, apache, or whatever