One crucial aspect of web development is managing user data, and email validation is a common task in this regard. The validate_email function in Django is a handy tool that helps developers ensure the validity of email addresses submitted by users. In this article, we will explore how to use validate_email in Django.
How to use ‘validate_email’ in Django?
validate_email is a function provided by Django’s validators module that allows you to check if a given string is a valid email address. It’s part of Django’s built-in form and model field validation system, making it easy to incorporate email validation into your application.
Setting Up the Project
Use the below command to start your project:
django-admin startproject <project_name>
cd <project_name>
python manage.py startapp user
user/model.py: Here we have created a User table with name, and email field in the table.
from django.db import models
from django.core.validators import validate_email
class User(models.Model):
name = models.CharField(max_length = 100 )
email = models.EmailField(validators = [validate_email])
def __str__( self ):
return self .name
|
user/form.py: Here we created a form to register a user request.
from django import forms
from .models import User
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = [ 'name' , 'email' ]
|
user/views.py: This file uses the form and renders a template to collect user data an dverify ‘.
from django.shortcuts import render
from .forms import UserForm
def create_user(request):
if request.method = = 'POST' :
form = UserForm(request.POST)
if form.is_valid():
form.save()
else :
form = UserForm()
return render(request, 'index.html' , { 'form' : form})
def home(request):
return HttpResponse( 'Hello, World!' )
|
templates/index.html: A HTML form for a user to validate it’s user id email.
<!DOCTYPE html> < html lang = "en" >
< head >
< meta charset = "UTF-8" >
< title >User Registration</ title >
</ head >
< body >
< h1 >User Registration</ h1 >
< form method = "post" >
{% csrf_token %}
{{ form.as_p }}
< input type = "submit" value = "Register" >
</ form >
</ body >
</ html >
|
user/urls.py: Define the URL patterns in the urls.py file of the user app to map views to URLs.
from django.urls import path
from . import views
urlpatterns = [
path( '/home' , views.home, name = 'home' ),
path(' ', views.create_user, name=' create_user'),
] |
urls.py: Add the necessary URL patterns in your project’s urls.py.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path( 'admin/' , admin.site.urls),
path(' ', include(' user.urls')),
] |
Deploy the Project
Migrate the data into the database.
python manage.py makemigrations
python manage.py migrate
Deploy the project
python manage.py runserver
Output