【发布时间】:2012-05-31 11:46:51
【问题描述】:
我目前开始使用 jQuery Mobile 构建一个移动应用程序,并用 Phonegap 包装它以支持本机应用程序,它是我们现有的用 Django 编写的桌面应用程序的扩展,我的问题是什么是最好的连接方式用 html5/js/css 编写的客户端应用程序到服务器端,我是否只使用 JSON 来发送/接收数据,有没有人有这方面的好文章?
【问题讨论】:
标签: django json jquery-mobile cordova
我目前开始使用 jQuery Mobile 构建一个移动应用程序,并用 Phonegap 包装它以支持本机应用程序,它是我们现有的用 Django 编写的桌面应用程序的扩展,我的问题是什么是最好的连接方式用 html5/js/css 编写的客户端应用程序到服务器端,我是否只使用 JSON 来发送/接收数据,有没有人有这方面的好文章?
【问题讨论】:
标签: django json jquery-mobile cordova
我个人创建了多个本地应用程序,其中 JqueryMobile 作为我的前端 - Django 作为服务器端 - 并使用 phonegap 本地包装到一个 iTunes 商店应用程序中。这确实是技术的完美组合——如果正确完成——可以产生快速的原生应用程序。
首先你应该看看 Tastypie。 Tastypie 是一种创建即时 RESful API 的非常简单的方法,该 API 可以将 JSON 数据发送到 javascript/JQuery。它是一个 Django 应用程序,它非常 Python 化(大量简单的类/方法覆盖 - 一切都是透明的)。
数据传输流程如下所示:
使用 jquery.ajax 函数或 getJSON 函数从指定的 URL 获取/发布/放置 JSON 数据。
此 URL 是从您的模型创建的美味派 API。它可能看起来像 /api/vi/blogs/all/
现在您在前端使用 Jquery 获得了 JSON 数据 - 您可以使用它做任何您想做的事情 - 填写表格 - 使用表单 - 等等。
首先查看一些 Jquery/Jquery 移动 ajax 函数以及如何通过 Jquery 库在前端使用 JSON。其次熟悉将 JSON 发送回 Django 视图(解析数据并将其保存到数据库)。然后深入了解 JQuery Mobile 用户界面的细节以及使其与 PhoneGap 良好配合的步骤。
【讨论】:
$.ajax({url:'/app/save-user', type:'POST'}) 的情况下,我们在开发服务器上获取 URL,如 127.0.0.1:8000/app/save-user 和生产服务器上的 https://myappname.com/app/save-user。所以这里实际的疑问是,我们如何在 phonegapp 案例中访问这个 URL?因为这将独立于开发服务器。
您需要注意的一件事是 jquery 内置的同源特性。由于 phonegap 使用带有 url file:// 的 webview,因此您发出的任何 web 请求都将是跨域的,因此您需要配置 jquery mobile 以允许它。
见http://jquerymobile.com/test/docs/pages/phonegap.html
除此之外,phonegap 移动应用程序和常规网络应用程序在获取/发布 JSON 方面没有太大区别。
【讨论】: