Django:如何检查没有表单的邮件

2024-05-21 20:50:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有HTML表单要在Django视图中发布,由于一些限制,在没有常用Django表单类的情况下,我可以更容易地执行validation

我使用Django表单的唯一原因是输入的电子邮件字段。

是否有任何函数来检查某个东西是否是email,或者我必须使用EmailField来检查和验证它?


Tags: django函数视图表单电子邮件emailhtml情况
2条回答

您可以使用django.core.validators中的validate_email()方法:

>>> from django.core import validators
>>> validators.validate_email('test@example.com')
>>> validators.validate_email('test@examplecom')
Traceback (most recent call last):
   File "<console>", line 1, in <module>
   File "/Users/jasper/Sites/iaid/env/lib/python2.7/site-    packages/django/core/validators.py", line 155, in __call__
    super(EmailValidator, self).__call__(u'@'.join(parts))
  File "/Users/jasper/Sites/iaid/env/lib/python2.7/site-packages/django/core/validators.py", line 44, in __call__
    raise ValidationError(self.message, code=self.code)
ValidationError: [u'Enter a valid e-mail address.']

你可以用下面的

from django.core.validators import validate_email
from django import forms

...
if request.method == "POST":
    try:
        validate_email(request.POST.get("email", ""))
    except forms.ValidationError:
        ...

假设你的表单中有一个<input type="text" name="email" />

相关问题 更多 >