.class { align:center; }
Django

Registro de usuario de Django con confirmación por correo electrónico

En este tutorial de Python Django, vamos a aprender sobre registro de inicio de sesión de usuario en el marco Django y luego de eso, también enviaremos el correo electrónico de confirmación para confirmar el registro del usuario a través del correo electrónico.

¿Cómo crear un registro de usuario con confirmación de correo electrónico en Django?

Aquí, en este tutorial, vamos a crear un registro de usuario con una aplicación de confirmación por correo electrónico.

  • Primero, configuraremos una aplicación Django básica y la configuraremos.
  • Generación de tokens para autenticar a nuestros usuarios a través de correo electrónico de confirmación.
  • Creación de modelos, vistas y plantillas.
  • Cree el backend y la configuración de correo electrónico y vea la configuración del servidor SMTP.

Paso 1: configurar un proyecto Django

En primer lugar, crearemos un entorno virtual.

Crearemos un entorno virtual en la carpeta (crear una carpeta en caso de no crearse) en el que vamos a configurar nuestro Registro de usuario Proyecto Django. Para crear un entorno virtual, use estos comandos en un símbolo del sistema (como administrador) o terminal de código VS.

> python -m auth-env

Ahora, hemos creado con éxito un entorno virtual, es decir aut-env.

Siga el siguiente comando para activar el entorno virtual.

> auth-env\Scripts\activate

Hemos creado y activado con éxito un entorno virtual aut-env en nuestro proyecto Django. Aparecerá en su terminal como se muestra en la imagen a continuación.

Virtual-env en nuestra aplicación de registro de usuarios Python Django

Instalando Django en nuestro entorno virtual.

Cada vez que creamos un entorno virtual, necesitamos instalar el requisito del paquete de nuestro proyecto. Ahora instalaremos Django en nuestro virtualenv usando tel pipa dominio.

> pip install django

Creación de un proyecto Python Django

Para crear un proyecto Django en Python, ejecute los siguientes comandos en la terminal.

> django-admin startproject UserAuth

Podemos ver en la barra lateral del código VS que nuestro proyecto UsuarioAuth se crea y genera automáticamente algunos archivos y directorios como se muestra en la imagen a continuación.

aplicación de registro de usuario django

Proyecto creado en la aplicación Django.

Mover al directorio del proyecto

Para ejecutar nuestro proyecto en el servidor, debemos movernos al directorio del proyecto en la terminal usando el siguiente comando.

> cd UserAuth

Crear una aplicación Django

Para organizar el código y facilitar la depuración, crearemos una aplicación Django llamada cuentas en nuestro directorio de proyectos usando el siguiente comando.

> python manage.py startapp accounts

Hasta ahora, hemos creado con éxito nuestro proyecto. UsuarioAuth y aplicación cuentas.

Configurar y registrar la aplicación

Para la configuración de la aplicación, tenemos que ir a la configuración.py archivo que está en nuestro directorio de proyectos UsuarioAuth entonces ve a la APLICACIONES INSTALADAS enumere y registre los ‘cuentas’ aplicación El código se menciona a continuación para una mejor comprensión.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'accounts',
]

Configuración de URL

Ahora necesitamos agregar una ruta URL en nuestro urls.py archivo. Para diseñar URL en la aplicación, hay una configuración de URL de módulo de Python. Este módulo es código de Python puro y es un mapeo entre expresiones de ruta de URL a funciones de Python.

Entonces, agregaremos el siguiente código en nuestro urls.py archivo de la UsuarioAuth Carpeta.

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('',include('accounts.urls')),
    path('admin/', admin.site.urls),
]

Creación de plantillas en nuestras cuentas de aplicaciones.

Te puede interesar:  Sistema de inicio de sesión en Python Django

En este paso, crearemos algunas plantillas en formato HTML en nuestro directorio de aplicaciones. cuentas. Asegúrese de utilizar plantillas de palabras exactas. Para crear plantillas, haga clic en cuentas y crear nueva carpeta plantillas y en esas plantillas crea un archivo HTML base.html y su código se menciona a continuación.



  
   
    
    
  
  
    {% block content %}

    {% endblock %}

Ahora vamos a crear tres plantillas más iniciar sesión.html, inicio.html, y registro.html dentro de plantillas carpeta, y después de eso, registraremos ambos archivos en las vistas de nuestra aplicación. siga el siguiente código login.html archivo.

{% extends "base.html" %}
    
    {% block content %}


    {% endblock %}

Después de crear login.html, usaremos el código completo de iniciar sesión.html en inicio.html y registro.html y por ahora, solo cambia el título en el registro.html archivo.

Autenticación de usuario en Pyhton Django

Registro de usuario en la aplicación Django error

Lea las funciones de importación de Python Django

Creando URLs en nuestra aplicación

Vamos a crear URLs en nuestro cuentas aplicación El código que se utiliza en la aplicación. urls.py se menciona a continuación.

from django.contrib import admin
from django.urls import path
from .views import *


urlpatterns = [
    path('', home , name="home"),
    path('register' ,  register_attempt , name="register_attempt"),
    path('login' , login_attempt , name="login_attempt"),
]

Creación de vistas en la aplicación.

En el puntos de vista de la aplicación de cuentas, crearemos una ruta para acceso y registro páginas HTML.

from django.shortcuts import render


def home (request):
    return render (request , 'home.html')

def login_attempt(request):
    return render (request, 'register.html')

def register_attempt (request):
    return render(request , 'login.html')

Después de este paso, agregaremos href hipervínculo en el archivo login.html y register.html. Consulte las imágenes que se muestran a continuación.

Registro de usuario por email de confirmación en Django

hipervínculo para el archivo register.html

Autenticación de usuario en Pyhton Django

hipervínculo para el archivo login.html

Ahora hemos completado nuestras plantillas HTML de inicio de sesión y registro que representaremos en el servidor.

Paso 2: Ejecute el servidor para ver nuestra aplicación

Vamos a ejecutar el servidor de desarrollo para ver nuestra aplicación en el lado del servidor. Ejecute el comando mencionado a continuación en su terminal y vaya al enlace generado.

Aplicación de registro de usuario de Django

Página de inicio de sesión para el inicio de sesión del usuario

Paso 3: Generación de un token para la autenticación

En este paso, pasaremos a la siguiente parte de nuestra aplicación donde generaremos tokens para autenticar nuestro registro de usuario a través del correo electrónico.

Para eso, crearemos una plantilla. exito.html y token_send.html y en views.py agregaremos vistas para eso también. Ahora cree estos archivos success.html y token_send.html en el plantillas carpeta donde hemos creado nuestras plantillas anteriores.

Después de crear plantillas vamos a vistas.py y agregue vistas para estos dos archivos.

def register_attempt (request):
    return render(request , 'register.html')

def token_send (request):
    return render(request , 'token_send.html')

def success (request):
    return render(request , 'success.html')

Junto con esto, también debemos registrar sus URL. Por lo tanto, vaya a urls.py de la aplicación de cuentas y siga el código mencionado a continuación.

urlpatterns = [
    .

    .
    .
    path('token' , token_send , name="token_send"),
    path('success' , success, name="success")
]

Ahora regrese a nuestras plantillas y siga el siguiente código html para la estructura de token_send.html y exito.html.

#success.html
{% extends "base.html" %}
    
    {% block content %}
#send_token.html
{% extends "base.html" %}
    
    {% block content %}

Creando modelos

Ahora pasaremos al modelo de usuario para ver cómo enviaremos un correo electrónico de confirmación a un usuario después de la autenticación. En Django, hay dos métodos para la autenticación: primero, sobrescribir al usuario o usar la relación para extender el campo del usuario. Vamos a utilizar el segundo. Primero, cree modelos en modelos.py de nuestra aplicación.

Te puede interesar:  Ordenar una Consulta en descendente y ascendente en Python Django

Siga el siguiente código para modelos.py.

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User)
    auth_token = models.CharField(max_length=100)
    is_verified = models.BooleanField(default=False)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.user.username

Hacer migraciones

Hemos creado modelos ahora para ejecutar estos cambios, necesitamos propagar los cambios que hemos realizado en los modelos en la base de datos. Ahora, para realizar migraciones, ejecute los siguientes comandos en la terminal.

> python manage.py makemigrations
> python manage.py migrate

Lea Cómo registrar un usuario con verificación OTP en Django

Paso 4: Crea un superusuario

Para ver los datos, debemos ingresar al panel de administración de Django y, para eso, debemos crear una cuenta de superusuario para acceder al panel de administración de Django. Ahora siga el siguiente comando en la terminal para crear un superusuario.

> python manage.py createsuperuser

Creando publicaciones en views.py

En este paso, vamos a crear un POST IN vistas.py archivo para nuestro registro página. También hemos utilizado el método de prueba y captura para que no arruine la experiencia del usuario.

def register_attempt (request):
    if request.method == 'POST' :
        username = request.POST.get('username')
        email = request.POST.get('email')
        password = request.POST.get('password')

        try:
            if User.objects.filter(username = username).first():
              messages.success(request,'Username is taken.')
              return redirect('/register')
        
            elif User.objects.filter(email = email).first():
              messages.success(request, 'Email is taken')
              return redirect('/register')
        
            user_obj = User.objects.create(username = username, email=email)
            user_obj.set_password(password)

            profile_obj = Profile.objects.create(user = user_obj , token = str(uuid.uuid4))
            profile_obj.save()

            return redirect('/token')

        except Exception as e:
            print(e)

        
    return render(request , 'register.html')

Después de esto, agregaremos un campo en la página register.html y también un mensaje de alerta en nuestro formulario de registro con la ayuda del campo de mensajes de Django. Entonces, simplemente edite el código mencionado a continuación en registro.html

Register for user account


            

{% if messages %}

{% for message in messages %}

{{ message }}


{% endfor %}

{% endif %}

Ir a administrador.py y agregue el código mencionado a continuación.

from django.contrib import admin
from .models import *

admin.site.register(Profile)

Crear una función enviar correo, verificar, y error en vistas.py

def verify(request , auth_token):
    try:
        profile_obj = Profile.objects.filter(auth_token = auth_token).first()
        if profile_obj:
            profile_obj.is_verified = True
            profile_obj.save()
            messages.success(request, 'You account is been verified')
            return redirect('/login')
        else:
            return redirect('/error')
    except Exception as e:
        print(e)


def error_page(request):
    return render(request, 'error.html')   


def send_mail_after_registration(email,token):
    subject = "Your account needs to be verified"
    message = f'Hi paste your link to verify your account http://127.0.0.1:8000/verify/{token}'
    email_from = settings.EMAIL_HOST_USER
    recipient_list = [email]
    send_mail(subject, message , email_from ,recipient_list)

En caso de que tengamos un error, tenemos que crear un error.html archivo también para representar la página de error.

{% extends "base.html" %}
    
    {% block content %}

            

{% endblock %}

Registre estas funciones en urls.py.

urlpatterns = [
   .

   .
   .
   .
    path('success' , success, name="success"),
    path('verify/' , verify ,name = "verify"),
    path('error' , error_page , name = "error")
]

Paso 5: configurar el backend de correo electrónico

Para acceder a la configuración SMTP del servidor de correo electrónico mediante el cual podremos enviar correos electrónicos a través de nuestra aplicación. Registre los siguientes ajustes en el configuración.py archivo.

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = "your email account"
EMAIL_HOST_PASSWORD = "16-digit code generated by gmail in 2-factor authentication"

Ejecutar servidor de desarrollo

Ahora que hemos completado la configuración requerida para nuestra aplicación, ejecutaremos el servidor de desarrollo y probaremos nuestra aplicación. Después de ejecutar el comando python manage.py servidor de ejecución abre el http://127.0.0.1:8000/registro

Aplicación de autenticación de usuario de Django desde el correo electrónico

Registro de usuario para la autenticación en la aplicación Django

Después de registrarse, verá un mensaje de éxito para que se haya creado la cuenta.

Aplicación de autenticación de usuario de Django en Python

Mensaje de éxito para el registro de usuario

Ahora vaya a la cuenta de correo electrónico que ha registrado en el formulario de registro. Recibirá un enlace en su correo electrónico que lo redirigirá a la página de inicio de sesión con el mensaje de confirmación de verificación de cuenta exitosa.

Registro de usuario de la aplicación Django a través de correo electrónico

Registro de usuario confirmado a través del enlace

Conclusión

En este tutorial de Python Django, creamos con éxito una aplicación de registro de usuarios de Django y también verificamos el registro a través del correo electrónico, y también probamos el funcionamiento de nuestra aplicación.

También hemos aprendido sobre la Configuración del servidor SMTP y generar tokens para la autenticación de usuarios.

Ryley Crooks

En los Estados Unidos, Python es uno de los lenguajes más utilizados. He usado Python durante mucho tiempo y he trabajado con una variedad de bibliotecas, desde Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc. Comparto contigo mi experiencia de trabajo de muchos años en el campo de la IA.

Publicaciones relacionadas

2 comentarios

    1. Para cambiar el localhost por la IP de su servidor donde corre la aplicación, debe modificar el archivo settings.py de su proyecto Django.

      En la sección ALLOWED_HOSTS, agregue la dirección IP de su servidor. Por ejemplo:

      Python

      ALLOWED_HOSTS = [‘192.168.1.1’, ‘10.0.0.1’]

      También debe modificar el enlace del correo electrónico de confirmación. El enlace de confirmación se encuentra en el archivo templates/registration/activation_email.html.

      En el enlace de confirmación, cambie http://localhost:8000/activate/ por la dirección IP de su servidor. Por ejemplo:

      HTML

      Activar cuenta

      Una vez que haya realizado estos cambios, debe reiniciar su servidor Django.

      Aquí hay un ejemplo completo de cómo cambiar el localhost por la IP de su servidor:

      Python
      ALLOWED_HOSTS = [‘192.168.1.1’, ‘10.0.0.1’]

      # templates/registration/activation_email.html
      Activar cuenta

      Después de realizar estos cambios, podrá acceder a la aplicación desde su servidor.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
Responsable Birdie Bashirian PhD +info...
Finalidad Gestionar y moderar tus comentarios. +info...
Legitimación Consentimiento del interesado. +info...
Destinatarios No se cederán datos a terceros, salvo obligación legal +info...
Derechos Acceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicional Puedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Botón volver arriba