【问题标题】:Web application + Mobile App Python/Django architectureWeb 应用程序 + 移动应用程序 Python/Django 架构
【发布时间】:2015-01-04 04:54:54
【问题描述】:

我正在开始一个新的项目以学习一些新技术,但我对我应该使用的架构有几个疑问。我的想法是为网络和移动(主要是Android应用)开发一个应用程序,所以我认为我需要实现以下内容:

  • REST API 服务(使用 django-rest-framework)。
  • Web 应用程序(使用 django)。
  • Android 应用。

在对堆栈溢出和 Internet 进行研究后,我发现了 Web 部件的 3 个主要“架构”(服务器渲染、客户端渲染和混合模型)。首先,我的想法是使用客户端渲染模型(对于 Web 客户端使用主干或角度)。但是,我发现混合模型是更好的选择。

所以这是我的疑问: 1)我可以使用 django 来服务器渲染 Web 应用程序页面吗? 2) Django web 应用程序是否“使用”API 或 API 是使用与 django web 相同的“库”实现的? 3) 我可以/应该为 Web 客户端(服务器渲染)使用客户端框架(角度、主干)吗?

在此先感谢,对于我对 django 等方面的知识缺乏了解,我深表歉意。这个附带项目就是为了提高我对所有这些东西的了解。

【问题讨论】:

    标签: android python django architecture django-rest-framework


    【解决方案1】:

    我不使用 Django,但我目前使用 Angular 和 Flask 作为我的 REST 后端。如果您的应用程序受益于缓存渲染内容,我认为混合方法很有用。一个例子就像一个博客网站,你可以在其中存储 Markdown 但呈现 HTML,因此内容在很大程度上是不变的。如果此内容在许多用户之间共享,那么在服务器上生成一次并将其提供给许多客户端会非常有益。

    但是,如果您的理由是因为移动设备的服务器端渲染功能相对不足,服务器端渲染会缩短渲染时间,那么这不一定成立。提供 JSON 数据模型通常会减少网络流量(显然取决于浏览器缓存),这对于移动客户端的响应能力很重要。

    就我自己而言,我更喜欢在客户端渲染,并将服务器端渲染保持在一些非常小的模板上。我发现这会产生更好的 REST API,然后我可以使用它来提供外部开发人员访问或插入其他客户端 UI。我的客户端代码位于 Angular 的客户端,我的 REST 接口是干净的,安全性始终是我最关心的问题,因为我必须假设客户端代码可能是恶意的。

    也就是说,即使使用 Angular,我也可以看到服务器端渲染的用途。对于相当静态的内容,最好生成这个服务器端,缓存它,然后 ngInclude 它。

    【讨论】:

    • 感谢您的回答。我同意您关于使用 JSON 数据进行移动客户端渲染的观点。我对 Web 客户端(纯客户端渲染与服务器渲染)的怀疑更多,因为我在几篇文章中读到服务器渲染更好。例如,Twitter 将其模型从客户端呈现更改为这种方法,它不仅仅是静态内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2012-02-21
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2010-12-23
    相关资源
    最近更新 更多