【问题标题】:Flask for server and Node.js for API? [closed]Flask 用于服务器,Node.js 用于 API? [关闭]
【发布时间】:2018-09-18 04:33:01
【问题描述】:

我目前正在使用 Flask 开发一个 Web 应用程序,而我的一个同行正在使用 Node.js 开发一个 API。最终目标是将 API 用于所有数据库查询,我目前正在烧瓶应用程序的后端发布到 API,但我想知道 - 如果我们有单独的 API,我还需要使用 Flask 作为后端吗?

【问题讨论】:

    标签: node.js api flask server


    【解决方案1】:

    是的,为您的网络应用和数据 API 提供一个单独的应用程序是个好主意。当您想要扩展应用程序时,这是一个很好的做法。

    这样想……您的 API 可能会为更多的应用程序提供服务,而不仅仅是您的 Web 应用程序。如果您决定构建一个移动应用程序,您的 Web 应用程序和您的移动应用程序将使用来自同一个 API 的数据,但为不同的用户提供服务。您的 Web 和移动应用程序正在处理两个不同的用户池,但您的 API 正在处理所有这些用户。因此,您的 API 可能会比您的移动或 Web 应用程序服务更快地扩展。

    如果您的数据 API 和您的网络应用程序是同一个应用程序,即使您的网络应用程序可能不是 API 流量的核心贡献者,您也必须将它们扩展为一项服务。

    【讨论】:

    • 谢谢麦克斯!更具体地说:现在,我的网络应用程序直接查询数据库并使用 jinja 显示结果,但使用 api 发布新数据。现在感觉有点多余,客户端向服务器提交表单,服务器解析数据,然后将数据重新提交给 api。这是解决这个问题的坏方法,还是我应该继续并通过 api 重新路由获取请求?
    • @LandonMarshall 我建议您的对等节点应用程序有一条路由,您的 Flask 应用程序会访问该路由来请求数据。两个原因,首先,您的数据 API 应用程序应该规定数据的结构并将其解析为该结构。这样,每个使用数据的应用程序都不会一遍又一遍地解析数据。其次,您希望您的数据 API 应用程序成为查询数据库的唯一应用程序,以便您知道查询数据库的位置和时间。为了性能和安全。
    • @LandonMarshall 至于表单提交,这不是一个坏方法。如果你愿意,你可以点击你的数据 API。这真的取决于你们。只要确保你清理了表单数据
    【解决方案2】:

    这取决于您在前端使用什么,如果您使用某种 javascript 框架(Angular、React),您可以从客户端进行 API 调用。

    但是由于您没有提到这些,听起来您只是在使用 Flask 的模板引擎 (Jinja),它是一个服务器端模板系统。所以你仍然会在后端使用 Flask 来构建模板。

    【讨论】:

    • 这并不意味着您不能/不应该仍然使用 API 层。
    • 我没有说他不应该使用 API 层,只是它会被 Flask 调用,它也是后端的一部分
    猜你喜欢
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2015-03-26
    相关资源
    最近更新 更多