【问题标题】:What are the options to configure a reactjs and django application?配置 reactjs 和 django 应用程序的选项有哪些?
【发布时间】:2018-10-22 01:02:58
【问题描述】:

我将 reactjs 用于前端,将 Django REST API 用于后端。整合两者的最佳方法是什么? 这两个哪个是好的选择?

  1. 为前端和后端运行两台服务器?

  1. 用 reactjs 替换 django 模板?

非常感谢您的帮助。

【问题讨论】:

    标签: django reactjs


    【解决方案1】:

    这里的选项很少

    带有 react 的 Django 模板。 不是我喜欢的方法。本质上,您正在混合 django 模板和 jsx。这里的好处是低开销。它需要很少的配置,并允许您在同一个文件中编写 react 和利用 django 模板语言。如果您需要快速启动并运行某些东西,它是一个很好的解决方案。看看这个库https://github.com/Frojd/django-react-templatetags

    使用 django webpack 加载器 这将允许您将 React 代码与 django 代码分开,但仍将所有代码保存在一个存储库中。您需要配置 django 设置以找到您的反应代码。然后在您的 prod/dev 服务器上,让您的 Web 服务器指向您的静态反应代码所在的目录,或者编写一个 django url 并查看将为反应应用程序索引文件提供服务的视图。正确配置并运行python manage.py collectstatics 后,它将位于/static/ 中。这里的好处是它将代码保存在一个存储库中,但仍然隔离了 python 和 javascript 代码。这是三者的中间解决方案。速记。您不会使用这种开发方法对热重载做出反应。这是帮助您配置此设置的库https://github.com/owais/django-webpack-loader

    拥有 2 个独立的存储库 类似于你现在正在做的事情。有一个单独的反应存储库,由 nodejs 后端提供服务,或者最好将代码部署到像亚马逊 s3 这样的 cdn 服务,并让亚马逊提供单页应用程序。然后将您的 django 应用程序放在单独的服务器上,并使用其可消耗的 rest api(需要配置允许的 cors)。这样做的好处:关注点分离。这种方法需要大量的操作工作:部署、配置和管理 2 个独立的代码库。如果您有时间和资源,我建议您使用此设置。从运营和技术角度来看,此解决方案最具可扩展性

    【讨论】:

    • 感谢 Dap 列出所有选项。我还是更喜欢使用第三个选项。你知道解释第三个选项的任何博客、github repos 或教程吗?
    • medium.com/@omgwtfmarc/… 看看这个(将 react 应用部署到 s3)它与部署到 nodejs 服务不同
    【解决方案2】:

    两台服务器是什么意思?你的意思是两个项目/存储库? 是的,您可以将前端保留在单独的项目中。如果您的后端有多个客户端(如移动应用程序和网络),那么这很有意义。不同的开发人员只能拥有编辑其存储库的权限。如果您打算为您的项目使用一些微服务结构,这也是有意义的。但更简单的方法是将前端和后端保持在同一个项目中。尝试查看some tutorial 了解 Django+reactjs 应用程序。

    【讨论】:

    • 在 Node.js 上运行 React 有单独的服务器
    • @daniel M ,我想将前端与后端分开。两者都放置在两个不同的岛屿上。它们使用 DJANGO REST API 连接。我采用这种方法是因为这有助于我为 WEB、IOS 和 Android 使用相同的后端。 Django 将在自己的服务器上运行,react 将在自己的服务器上运行。我们有这种方法的样板吗?任何博客或文章都会有很大帮助。
    • 在这种情况下,您不需要教程,只需使用 DRF(一个 git 存储库)和另一个用于前端的 Django 应用程序
    猜你喜欢
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    相关资源
    最近更新 更多