【问题标题】:How to validate fields in Django?如何验证 Django 中的字段?
【发布时间】:2022-01-21 12:10:47
【问题描述】:

我是 Django 新手。我是一名 .NET 开发人员。我为新用户注册创建了一个表单,但我的问题是我需要一些验证控件来验证我的字段。 我找不到任何资源或示例。 请帮忙?

我的 newuser.html 在下面:

{% block content %}
<form method="POST">
{% csrf_token %}
    <table>
        <tr>
            <td>
                <lable>Name </lable>
            </td>
            <td>
                <input type="text" name="name">
            </td>
        </tr>
        <tr>
            <td>
                <lable>Username </lable>
            </td>
            <td>
                <input type="text" name="username">
            </td>
        </tr>
        <tr>
            <td>
                <lable>Password </lable>
            </td>
            <td>
                <input type="password" name="password">
            </td>
        </tr>  
        <tr>
            <td>
                <lable>Confirm password </lable>
            </td>
            <td>
                <input type="password" name="confirmPassword">
            </td>
        </tr>  
        <tr>
            <td>
                <lable>email </lable>
            </td>
            <td>
                <input type="email" name="email">
            </td>
        </tr>       
        <tr>
            <td>
                <input type="submit" name="save" value="Save" colspan=2>
            </td>
        </tr>    
</form>
{% endblock content %}

【问题讨论】:

标签: django django-models django-views django-forms django-templates


【解决方案1】:

Django 是服务器端的。您可以接受来自客户端的任何旧垃圾,因为您可以确定某处的某些黑客会在您身上尝试“小鲍比桌”之类的东西。 (XKCD 参考)。

因此,无论您在客户端做什么,Django 表单都会保护您。如果来自客户端的东西通过form.is_valid(),继续。如果没有,请重新显示有错误的表单。 CBV FormView 将为您完成这一切。

至于您想要的任何客户端验证,Django 不提供。如果你使用 Bootstrap,你会自动获得一定数量的。

【讨论】:

  • 如果我想检查电子邮件字段中的电子邮件格式,我将给你一个例子,我需要一个电子邮件验证器来检查它,或者我是否需要检查所有必填字段是否已填写。
  • Django 将在服务器端执行该操作。它是一个带有根据需要声明的 EmailField docs.djangoproject.com/en/3.2/ref/forms/fields/#emailfield 的表单。您可以添加自定义验证,例如,如果您希望限制有效域。使用 Bootstrap 客户端,它不允许使用空白字段提交,因为它是必需的。如果您想要客户端解析,您需要提供自己的 JavaScript 验证代码。我认为这没有任何意义,因为人们永远无法相信从互联网上发布的内容。服务器必须对其进行验证。
猜你喜欢
  • 2023-02-18
  • 2018-05-17
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 2011-09-14
  • 2015-08-06
相关资源
最近更新 更多