【问题标题】:What's the best way to plug React-Native with Django in Android Emulator?在 Android Emulator 中使用 Django 插入 React-Native 的最佳方法是什么?
【发布时间】:2019-12-27 14:52:38
【问题描述】:

这个问题是要大致了解在 React-Native 中使用 Django 在后端开发 Android 应用程序时的工作流程。所以,到目前为止,我知道该设备在 Android Studio 中模拟,因此 Linux 机器和 Android 设备的本地主机不同。想从社区了解在这种情况下开发应用程序的最佳方式是什么?那么一般如何连接后端和前端呢?

【问题讨论】:

    标签: python django reactjs react-native


    【解决方案1】:

    除了 KrazyMax 在一般代码结构方面的出色回答外,我还想补充两点:

    1) 虽然他推荐 Django Rest Framework,但我建议您也探索一下 GraphQL,因为它极大地简化了从前端(react native)到后端(Django)的查询,并且比使用 rest API 有一些优势 -像单个端点来管理和行使查询的选择性。 GraphQL 有一些初步的学习曲线,但是一旦你掌握了它,它就会大放异彩。还有一件好事是你不需要在开始时学习任何 GraphQl framework,因为普通的 GraphQl 也很有效。

    2) 您可以尝试expo framework 将Android 作为您的模拟器运行。 Expo 与 react 应用程序开箱即用,并提供许多优势,例如为您管理依赖问题、帮助发布等。请参阅documentation 了解如何开始。对于 expo 和您的本地主机后端服务器之间的通信,您可能必须使用 ngrok 之类的东西。

    【讨论】:

    • 感谢@bhaskarc 的回答!关于GraphQL 的使用,您是否继续使用django-rest-framework,因为您必须以某种方式公开您的端点? GraphQL 是否只是为了更容易获取 url? GraphQL 是我下一个想要掌握的东西,因为它有点时髦,很多人说它让一个人的生活更轻松,在我开始浏览 google 和 Medium 之前,你有什么资源可以推荐吗?
    • GraphQL 是 django rest 框架的替代品——一种更新的查询方式,在许多方面更高效。我通过这个优秀的链接学习了 GraphQl,该链接展示了如何连接 Django 和 GraphQL howtographql.com/graphql-python/4-authentication
    • 另外几个框架已经建立在 GraphQL 之上。我使用了普通的 GRaphQl(没有使用像 Apollo 这样的框架),因为 Apollo 的学习曲线对我来说有点太多了,甚至是普通的 GraphQL在一个中等规模的项目中对我来说效果很好。
    • 就像使用 Postman 来测试 API 一样,GraphQl 有一个叫做 GraphQLi 的东西——交互式客户端来播放和测试查询。我曾经使用了一个名为 Altair GraphQL Client 的 Chrome 扩展程序,非常棒
    • @bhaskarc 感谢您的澄清,现在事情更清楚了。但我的实际意图是了解在模拟 Android 设备的情况下前端和后端如何通信。有些教程说要在 Azure/AWS 上运行后端以公开访问,因为 localhost 不可用,但我想这对于调试有很多工作要做,不是吗?那么,有没有一种通用的交流方式呢?
    【解决方案2】:

    我建议你看看我之前回答的一个问题,还有关于后端Django 和前端React.js 之间的关联?

    Recommendation on deploying a heavy Django + React.js web-application

    我认为您的问题不仅与 Android 开发有关。

    【讨论】:

      【解决方案3】:

      所以,我有一个很棒的方法来连接两端。如果您的开发机器安装了 Chrome,那么一次性连接本地主机非常方便。 在 Chrome 开发工具中,有一个名为 Port Forwarding 的功能。

      在开发机器 Web 服务器上托管一个站点,然后从 Android 设备访问内容。

      使用 USB 数据线和 Chrome DevTools,您可以从 开发机器,然后在 Android 设备上查看该网站。

      在这里,我需要制定一个新规则,将 Django 服务器的 localhost:8000 映射到 Android 模拟设备的 8000 端口(localhost)。很棒的工具,只需包含一条规则,所有第三方依赖项都会在上下文中清除。没问题,链接也在不断变化!

      【讨论】:

        猜你喜欢
        • 2021-12-08
        • 2022-01-02
        • 1970-01-01
        • 2019-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-16
        相关资源
        最近更新 更多