使用离子移动应用程序与 Django 进行表单处理的最佳方式

Best way to use ionic mobile app with Django for form handling

本文关键字:表单 处理 方式 最佳 Django 移动 应用程序      更新时间:2023-09-26

我正在使用ionic构建一个移动应用程序。

对于普通的 django 站点,我们在视图中生成上下文并将其发送到模板,模板使用多种方式(如 form.as_pform.field 等)显示 html。

这个离子移动应用程序呢?

Django 表单对移动客户端不是很有帮助

Django 表单对此没有多大帮助。你的 ionic 应用程序需要有自己的独立于 Django 应用程序(相对于你的 Django 部署是远程的)存在的形式。

移动客户端通过 HTTP 进行通信

在引擎盖下,通常会发生的情况是你的Ionic应用程序将使用HTTP与Django应用程序进行通信。例如,这可以是通过 JSON REST API。

我建议你在Django上建立一个REST API,例如使用Django REST框架,因为它非常接近Django的设计和习语。因此,您可以快速获得对模型和验证器等熟悉事物的支持。

Ionic是基于AngularJS/Angular2的,所以当你的表单发布时,你可以使用大量的REST工具与你的服务器进行通信。

使用 HTTP OPTIONS在客户端动态生成表单

如果您出于某种原因需要在客户端自动生成表单(例如,您对 DRY 有宗教信仰,或者您有许多表单遵循某些模式等),您可以使用 OPTIONS HTTP 动词来获取有关表单及其字段的元数据

例如,客户端表单可以解析此数据结构以构建表单

"actions": {
    "POST": {
        "note": {
            "type": "string",
            "required": false,
            "read_only": false,
            "label": "title",
            "max_length": 100
        }
    }
}

您可以使用一些库来执行此操作,您只需使用自定义 DRF 元数据生成器或 JS 端的一些操作稍微转换模式格式。

我通常使用 Django-rest-framework (DRF) 在 Django 中构建 api。DRF 提供了序列化程序,允许您验证传入的请求数据,就像使用 Django 表单一样。

要完全回答您的问题:

您可以使用适当的字段构建 html 表单,然后将数据发布到 api 端点(即 API 视图),然后使用序列化程序验证传入的请求数据。