Javascript 隔离紧密耦合的前端和后端

Javascript 隔离紧密耦合的前端和后端,javascript,html,flask,web-applications,web-deployment,Javascript,Html,Flask,Web Applications,Web Deployment,Python-2.7,Web框架:Flask 我的前端和后端位于同一台服务器上。我正在使用flask web框架(获取/发布API和渲染模板)。现在,我想将它们隔离,并将它们托管在两台不同的机器中。由于代码库是紧密耦合的,我主要渲染HTML文件,如何实现这一点 如果您正从服务器上呈现html,您仍然可以分散前端和后端。使用RESTAPI或类似的东西创建后端服务器。然后,对于前端服务器,只需让它调用后端服务器,并返回以html格式呈现给客户端的结果。这样,如果您不想公开后端服务器,就不需要公开后端

Python-2.7,Web框架:Flask

我的前端和后端位于同一台服务器上。我正在使用flask web框架(获取/发布API和渲染模板)。现在,我想将它们隔离,并将它们托管在两台不同的机器中。由于代码库是紧密耦合的,我主要渲染HTML文件,如何实现这一点


如果您正从服务器上呈现html,您仍然可以分散前端和后端。使用RESTAPI或类似的东西创建后端服务器。然后,对于前端服务器,只需让它调用后端服务器,并返回以html格式呈现给客户端的结果。这样,如果您不想公开后端服务器,就不需要公开后端服务器

以下是一个例子:

后端

@app.route('/mydata/')
def mydata:
    # ... logic/service calls ...
    return jsonify(result)
import requests

@app.route('/')
def index():
    api_result = requests.get(API_URL + '/mydata/')
    # ... Map api_result to result ...
    return render_template('index.html', result=result)
前端

@app.route('/mydata/')
def mydata:
    # ... logic/service calls ...
    return jsonify(result)
import requests

@app.route('/')
def index():
    api_result = requests.get(API_URL + '/mydata/')
    # ... Map api_result to result ...
    return render_template('index.html', result=result)

您的意思是,我们可以从html文件本身向后端REST API发出Ajax调用,而不是进行渲染,并获取数据,是吗?它将从您的视图发出调用,然后传递到您的模板中。虽然前端项目中仍然会有代码,但它不会有任何后端逻辑。好的,我将尝试实现它。有一个问题是,将这两个(前端和后端)分开会增加网页的额外开销,对吗?我应该澄清一下——这通常是通过从视图中使用纯粹的“Ajax”调用来实现的。我的解决方案是对您进行最小的更改,因为它不会获取数据并改变视图客户端,而是在数据发送到视图服务器端之前获取数据。是的,会有更多的开销,但在大多数情况下可以忽略不计。