【问题标题】:Is there any problem with using django form just to do the validation on the server side?使用 django 表单只是在服务器端进行验证有什么问题吗?
【发布时间】:2019-05-07 15:04:12
【问题描述】:

目前我正在开发的应用程序使用 html 表单,并且使用所需的 value 属性完成验证。也就是说,它在前端进行验证。

但是,我想使用 django 表单,因为我听说它是​​一种更安全的信息验证方式。

查看文档似乎是一件复杂的事情,通过 django 表单呈现我的表单,因为我的表单在设计方面有很多特点。

考虑到上述情况,并且我已经有了用 html 设计的表单,我不想更改它们,只使用 django 表单在服务器端进行验证。

可以这样做吗? 这是个坏主意吗?

【问题讨论】:

  • 您不必使用{{form.as_p}} 来呈现您的django 表单。如何在 HTML 中呈现表单并不重要,所以如果你想自己编写所有的 HTML,那完全没有问题。是的,使用 Django 表单来验证(和保存)数据是非常好的,而不是渲染表单。只需确保输入字段使用的属性与 Django 表单的预期键相对应。 (您可以使用{{ form.some_field.name}}{{form.some_field.id_for_label}} 正确设置它们)。

标签: django forms django-forms


【解决方案1】:

是的,当然。由于您提到的表单的复杂性,前端部分最终是定制的,这是很常见的。一般的过程是你仍然会在服务器端验证它——这实际上是安全所必需的——使用表单,与文档中解释的方式相同,但不做前端部分。

因此,您将拥有自定义 HTML,而不是模板中为您生成 HTML 的 {{form}} 之类的东西。

然后您将不得不担心确保字段的名称属性与 Django 所期望的匹配的额外步骤,默认情况下类似于 id_field_name,但您也可以自定义这些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 2011-02-16
    • 2018-01-27
    • 2014-01-29
    • 2010-11-10
    • 2011-11-11
    相关资源
    最近更新 更多