Gridi Show
222 subscribers
4 photos
1 video
20 files
153 links
Download Telegram
Email Verification In Django project| email Verification during sign-up or registration of new users
for source code:
https://t.me/pythonmoms
settings.py
#EMAIL
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_POST = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER ='your email id '
EMAIL_HOST_PASSWORD ='enter your password'
-------------------------------------------------------------------------------


views.py
from django.contrib.sites.shortcuts import get_current_site
from django.utils.encoding import force_bytes
from django.utils.encoding import force_str
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from django.template.loader import render_to_string
from .tokens import account_activation_token
from django.contrib.auth.models import User
from django.core.mail import EmailMessage
from django.contrib.auth import get_user_model
from django.http import HttpResponse

def activate(request, uidb64, token):
User = get_user_model()
try:
uid = force_str(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
except(TypeError, ValueError, OverflowError, User.DoesNotExist):
user = None
if user is not None and account_activation_token.check_token(user, token):
user.is_active = True
user.save()
return HttpResponse('Thank you for your email confirmation. Now you can login your account.')
else:
return HttpResponse('Activation link is invalid!')

# REGISTER FUNCTION
def Register_user(request):
form=SignUpForm()
if request.method=='POST':
form=SignUpForm(request.POST)

if form.is_valid():
user = form.save(commit=False)
user.is_active = False
user.save()

current_site = get_current_site(request)
mail_subject = 'Activation link has been sent to your email id'
message = render_to_string('acc_active_email.html', {
'user': user,
'domain': current_site.domain,
'uid':urlsafe_base64_encode(force_bytes(user.pk)),
'token':account_activation_token.make_token(user),
})
to_email = form.cleaned_data.get('email')
email = EmailMessage(
mail_subject, message, to=[to_email]
)
email.send()
messages.success(request,"Please confirm your email address to complete the registration")
return redirect('home')

else:

form = SignUpForm()
return render(request, 'register.html', {'form': form})
return render(request, 'register.html')

urls.py
path('activate/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/',views.activate, name='activate'),
3👍1