【问题标题】:PhoneGap with Django BackendPhoneGap 与 Django 后端
【发布时间】:2013-09-08 08:47:14
【问题描述】:

我正在开发一个使用 django 的 Web 应用程序。

我想使用手机间隙为 ios / android 创建网站的本机应用程序。

这可能吗?据我了解,本机设备无法解释 python 代码。

这是项目的早期阶段,如果证明太难,我可能会使用不同的框架,即主干.js。

有什么想法/经验吗?

【问题讨论】:

    标签: ios django cordova


    【解决方案1】:

    没错,您不能使用 PhoneGap 在 iOS 或 Android 上运行 python 代码,但没有必要这样做。是的,您可以使用 PhoneGap 构建您网站的原生移动应用程序。

    我将尝试解释一下这些技术之间的比较:

    • Django 是一个运行在 web 服务器上的 python web 框架
    • PhoneGap 是一个使用网络技术 (HTML5+CSS+Javascript) 构建原生移动应用程序的框架,该应用程序将在移动设备上运行

    一种常见的方法是使用 jQuery Mobile 构建移动 UI,并使用 Django Web 应用程序提供 RESTful API 来获取应用程序的数据。

    查看this another question了解更多详情。


    编辑:回答第一条评论中的问题

    是的,可以使用这些框架构建快速且运行良好的应用程序。今天智能手机的性能更多地取决于实现的质量,而不是 jQuery mobile 和 Django 本身。

    PhoneGap 基本上可以通过三种不同的方式向用户显示内容:

    • 服务器端生成的页面
    • 在客户端使用来自服务器的 Javascript 数据生成的页面,以预定义的格式传输,例如使用 JSON
    • 前两者的组合

    This answer 很好地阐明了服务器-客户端通信和页面呈现。

    您可以像使用受限网络浏览器一样使用 PhoneGap,并且基本上可以直接从您的服务器显示内容,就像用户使用普通网络浏览器访问网站时一样。 但我不建议这样做。这种方法有很多缺点(即当用户打开从您的网站指向另一个网站的链接时会发生什么?)

    准确地说,至少在我看来,使用 Javascript 编写并在使用 PhoneGap 构建的应用程序中运行的 UI 不是原生的。对比原生应用和PhoneGap应用是另一回事,这里有一个take on explaining the differences

    我不知道您正在构建什么样的服务,但总的来说,我建议在开始构建应用程序之前评估不同的方法。响应式移动优化网站会做还是真的需要应用程序可以提供什么?

    如果您决定使用 PhoneGap 构建应用程序,我建议您使用客户端 Javascript 并使用 JSON 格式的 XHR 请求从 Django 后端获取数据。互联网上有很多examples

    【讨论】:

    • 谢谢。这种方法会在移动设备上产生良好的性能吗?您链接到的另一个线程建议如此。但是我读过不同的意见。我想弄清楚从台式机访问该网站与从移动设备访问该网站有什么区别?桌面通过 url 触发视图 - 这在移动设备上是否相同?还是建议用 JavaScript 编写视图逻辑并在手机上本地运行以获得最佳效果?提出另一个问题..为什么它在服务器处理视图功能而不是客户端的桌面上运行不慢?
    • @eol 我用你的新问题的答案更新了答案,除了最后一个我不明白的问题。
    • 我听取了您的建议,并继续使用 Django 和 Tastypie RESTful API 构建我的网站,以便从我的 phonegap iOS 应用程序访问。然而,在使用此类 API 时,我仍然非常难以理解会话身份验证。我已经详细说明了我的问题HERE。我希望你能给我一些启发来帮助我理解这个堆栈。提前谢谢了。 @lekksi
    • @eol 抱歉,我最近很忙,没有时间提供帮助。如果问题还没有解决,我下周去看看?
    • 是的,这个问题仍然存在。我已经转移到 Django RestFramework 并取得了更多进展。然而仍然无法获得与 CORS 一起使用的 ajax 令牌身份验证。在任何地方都找不到工作示例! @lekksi
    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 2017-09-24
    • 1970-01-01
    • 2020-07-20
    相关资源
    最近更新 更多