【问题标题】:How do you use Django forms when receiving JSON Ajax requests from an iPad?从 iPad 接收 JSON Ajax 请求时如何使用 Django 表单?
【发布时间】:2012-04-20 08:48:44
【问题描述】:

我正在从一个原生 iPad 应用程序向我的 Django Web 服务器发送大量 JSON 请求。如何翻译我在网站上使用的表格以处理 iPad 网络服务?

我是否试图解决错误的问题,是否应该重新设计从原生 iPad 应用程序使用的 Web 服务以使用 REST-ful 请求?

【问题讨论】:

    标签: django web-services ipad


    【解决方案1】:

    嗯,首先,这个问题真的应该是:

    “如何使用 Django 和 JSON 编写 RESTful API?”

    iPad 就像任何其他网络浏览器(客户端)一样,它们可以使用 javascript、JSON 等。

    以下是您需要做的高级描述:

    1. 编写一个 Django 视图并将其映射到一个 URL,例如:/api/some_action/
    2. 写出您的视图主体,让它在服务器上执行您需要的任何操作。
    3. 编写显示在用户 iPad 上的 HTML/javascript 代码,以便当 iPad 用户访问您网站的一部分(例如 /home/)时,他们会向与 API 对话的服务器发出 JSON 请求(例如,发送一些 JSON 到 /api/some_action/)

    一旦您的 Javascript 代码将 JSON 发送到 API 视图,您的视图应该处理该 JSON,并执行您想要的任何操作。

    这是大多数网络服务的开发方式。

    希望有帮助!

    【讨论】:

    • 我没有在 iPad 上使用 HTML/Javascript,我正在编写一个原生 iPad 应用程序。
    • @MikeN 将第 3 点中的“HTML/javascript”替换为“本机 iPad 应用程序”。原理是一样的,API 的重点是它不关心请求从哪里来或如何进来的。
    • @MikeN,Sponsz 上校基本上完全明白了我的意思。无论您是否使用 HTML/Javascript,您仍然可以从 iPad 应用程序生成 HTTP 请求。我不是 iPad 开发人员,所以我不了解 Apple API,但我向您保证,有类似“curl”的东西可以轻松地将 HTTP 请求发送到 Web 服务器。
    【解决方案2】:

    iPad(或 iPhone/iPod)浏览器可以发送 PUT/DELETE 命令吗?对我来说,这是尝试在 JavaScript 中开发类似 REST 的应用程序时遇到的最大问题。

    最后,我倾向于使用小型 Django 视图(主要使用create_update 通用视图)来处理 HTML/表单/模型集成;在 JS 中,我使用 jQuery 的 $('#dialog').dialog().load('dialogurl') 打开一个对话框并使用 Django 生成的表单加载它。请务必自行管理submit()

    我更喜欢在浏览器上编写一个 REST 服务器(可能使用 Django-Piston)和一个完整的客户端应用程序;但到目前为止我还没有找到一个足够好的 JS 框架。 (睡衣或 qooxdoo 听起来不错,但“有点短”)

    【讨论】:

    • 尝试使用原生 iPad 应用程序,而不是 iPad 上的网络浏览器。
    • @MikeN:那么,是的,完全 REST!
    【解决方案3】:

    Django TastyPie 满足了这一需求 - 适用于 iOS (iPhone/iPad) 和 Android 平板电脑的 RESTful 和 Ajax。

    http://django-tastypie.readthedocs.org/en/latest/index.html

    http://django-tastypie.readthedocs.org/en/latest/tutorial.html#adding-to-the-api

    这使得可以访问更多数据,所以如果我们再次启动运行服务器,以下 URL 应该可以工作:

        * http://127.0.0.1:8000/api/v1/?format=json
        * http://127.0.0.1:8000/api/v1/user/?format=json
        * http://127.0.0.1:8000/api/v1/user/1/?format=json
        * http://127.0.0.1:8000/api/v1/user/schema/?format=json
        * http://127.0.0.1:8000/api/v1/user/set/1;3/?format=json
        * http://127.0.0.1:8000/api/v1/entry/?format=json
        * http://127.0.0.1:8000/api/v1/entry/1/?format=json
        * http://127.0.0.1:8000/api/v1/entry/schema/?format=json
        * http://127.0.0.1:8000/api/v1/entry/set/1;3/?format=json
    

    这里是演示 https://github.com/natea/Valentunes

    它有一个网络客户端 iPhone 应用程序(搜索它)。

    【讨论】:

      猜你喜欢
      • 2011-03-01
      • 1970-01-01
      • 2014-02-19
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 2017-12-08
      • 2018-09-22
      相关资源
      最近更新 更多