在學校的項目上工作我知道如何做到這一點在燒瓶,但學習Django。我試圖確保在發佈之前輸入有效的電子郵件。如果我不做if if語句,表單會通過,但不會驗證它。我有以下內容,唯一不工作的部分是帶有註釋的部分,但是我包含了整個views.py,因此您可以看到頂部可能出錯的內容。正則表達式電子郵件驗證django
views.py
from django.shortcuts import render, redirect
from .models import User
import re
EMAIL_REGEX = re.compile(r'^[a-zA-Z0-9.+_-][email protected][a-zA-Z0-9._-]+\.[a-zA-Z]+$')
# Create your views here.
def index(request):
return render(request, "emailvalidation/index.html")
def create(request):
if request.method == 'POST': #here down
if len(request.form['email']) < 1:
add_message("Invalid Email Address!") #if i take out the if else the form does work
elif not EMAIL_REGEX.match(request.form['email']): #the validation.
add_message("Invalid Email Address!")
else:
User.objects.create(email = request.POST['email']) #to here
context ={
"email": User.objects.all(),
}
return render(request, 'emailvalidation/success.html' ,context)
the traceback error
Environment:
Request Method: POST
Request URL: http://localhost:8000/user
Django Version: 1.10.6
Python Version: 2.7.10
Installed Applications:
['apps.emailvalidation',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\dbhol\Desktop\DojoAssignments\Python\myenvirnoments\djangoENv\lib\site-packages\django\core\handlers\exception.py" in inner
42. response = get_response(request)
File "C:\Users\dbhol\Desktop\DojoAssignments\Python\myenvirnoments\djangoENv\lib\site-packages\django\core\handlers\base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "C:\Users\dbhol\Desktop\DojoAssignments\Python\myenvirnoments\djangoENv\lib\site-packages\django\core\handlers\base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\dbhol\Desktop\DojoAssignments\Python\myenvirnoments\django2\emailval\emailval\apps\emailvalidation\views.py" in create
15. if len(request.form['email']) < 1:
Exception Type: AttributeError at /user
Exception Value: 'WSGIRequest' object has no attribute 'form'
你的url模式是什麼樣的? – Vallentin
而不是創建你自己的模式,你應該看看這個:https://docs.djangoproject.com/en/1.10/ref/validators/#validate-email –