我有html表单要在django视图中发布,并且由于某些约束,我更容易在没有通常的django表单类的情况下进行validation
。
我使用Django表单的唯一理由是输入的电子邮件字段。
是否有任何功能可以检查某物是email
还是我必须使用EmailField
检查和验证它?
您可以使用以下
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" />
您可以从django.core.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.']
import re
使用python
def check_email(email) -> bool:
# The regular expression
pat = r'b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}b'
if re.match(pat, email):
return True
else:
return False
使用正则表达式验证电子邮件
使用django,但这会引起验证错误
from django.core import validators
validators.validate_email("test@gmail.com")