Crear un acortador de URL es uno de los mejores proyectos para principiantes para perfeccionar sus habilidades. En este artículo, hemos compartido los pasos para construir un acortador de URL utilizando Django Framework. Para saber más sobre Django visita – Django Tutorial
Configuración
Necesitamos configurar algunas cosas antes de comenzar con nuestro proyecto. Usaremos el entorno virtual para nuestro proyecto.
pip install virtualenv virtualenv urlShort source urlShort/bin/activate
El comando anterior creará, activará un entorno virtual llamado urlShort .
Instalación de paquetes importantes
Necesitamos instalar algunos paquetes de antemano,
pip install django
Comenzando con nuestro proyecto
En primer lugar, necesitamos crear nuestro proyecto mediante,
django-admin startproject urlShort cd urlShort
Sobre el comando, crea un proyecto Django y luego cd en ese directorio. Después de eso, también necesitamos crear una aplicación dentro de nuestro proyecto. La aplicación es una especie de contenedor, donde almacenaremos nuestro código. Un proyecto puede tener varias aplicaciones y pueden estar interconectadas
python manage.py startapp url
El comando anterior crea una aplicación llamada URL en nuestro proyecto. Nuestra estructura de archivos ahora será:
urlShort ├── manage.py ├── url │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py └── urlShort ├── asgi.py ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-37.pyc │ └── settings.cpython-37.pyc ├── settings.py ├── urls.py └── wsgi.py
Comprobando si todo está bien…
Puede verificar si todo funciona simplemente escribiendo esto en la línea de comandos. Pero cd en la carpeta principal, aquí urlShort.
python manage.py runserver
runerver ejecutará un servidor local donde se cargará nuestro sitio web. Mover a URL
https://localhost:8000
Mantenga abierta la ventana de su consola.
¿Cómo construir un proyecto de acortador de URL?
Apriétense los cinturones de seguridad ya que estamos empezando a codificar. En primer lugar, jugaremos con views.py . views.py se usa básicamente para conectar nuestra base de datos, api con nuestro Frontend. Abra views.py y escriba
from django.http import HttpResponse def index(request): return HttpResponse("Hello World")
Guárdelo y abra localhost y verifique si cambia. No cambia porque no lo hemos mapeado en ninguna ruta. Básicamente, si escribe alguna función dentro de views.py , no funciona, pero necesitamos mapearla dentro de urls.p y. Entonces, crea un urls.py dentro de la carpeta url .
from django.urls import path from . import views app_name = "url" urlpatterns = [ path("", views.index, name="home") ]
No olvide agregar su aplicación: « url « en INSTALLED_APPS en settings.py
Creando modelos Django –
En primer lugar, necesitamos una base de datos para almacenar nuestras URL acortadas. Para eso, necesitamos crear un esquema para nuestra tabla de base de datos en models.py.
modelos.py
from django.db import models class UrlData(models.Model): url = models.CharField(max_length=200) slug = models.CharField(max_length=15) def __str__(self): return f"Short Url for: {self.url} is {self.slug}"
El código anterior crea una tabla UrlData en nuestra base de datos con columnas url , slug . Usaremos la columna url para almacenar la URL original y el slug para almacenar una string de 10 caracteres que se usará para acortar la URL.
Por ejemplo,
Original URL — https://medium.com/satyam-kulkarni/ Shorten Form — https://localhost:8000/sEqlKdsIUL
La longitud máxima de URL es de 200 caracteres y la longitud máxima de Slug es de 15 (considerando la dirección de nuestro sitio web). Después de crear modelos para nuestro sitio web, creemos algunos formularios para recibir información del usuario.
Crear un formulario
Cree un archivo forms.p y en nuestra carpeta de aplicaciones de Django.
formularios.py _
from django import forms class Url(forms.Form): url = forms.CharField(label="URL")
Simplemente importamos formularios de django y creamos una URL de clase que usaremos en las vistas . py y renderícelo en nuestro HTML. El formulario de URL solo tiene un campo de URL para ingresar la URL original.
Creación de vistas
Ahora, crearemos la interfaz de nuestra aplicación usando vistas . py _ Dividamos esta parte en Funciones.
urlShort() : esta función es donde funciona nuestro algoritmo principal . Toma una URL del formulario después de que el usuario la envía, luego genera un Slug aleatorio que luego se almacena en la base de datos con la URL original. También es la función que representa el índice . html (punto de entrada de nuestra aplicación)
vistas.py urlCorto()
def urlShort(request): if request.method == 'POST': form = Url(request.POST) if form.is_valid(): slug = ''.join(random.choice(string.ascii_letters) for x in range(10)) url = form.cleaned_data["url"] new_url = UrlData(url=url, slug=slug) new_url.save() request.user.urlshort.add(new_url) return redirect('/') else: form = Url() data = UrlData.objects.all() context = { 'form': form, 'data': data } return render(request, 'index.html', context)
urlRedirect() : esta función rastrea el slug hasta la URL original y lo redirige a la URL original.
vistas.py urlRedirect()
def urlRedirect(request, slugs): data = UrlData.objects.get(slug=slugs) return redirect(data.url)
Creación de rutas
Antes de ejecutar esta aplicación, debemos especificar las rutas de URL en urls.py de la aplicación
urls.py
from django.urls import path from . import views app_name = "url" urlpatterns = [ path("", views.urlShort, name="home"), path("u/<str:slugs>", views.urlRedirect, name="redirect") ]
Ejecutar el proyecto
Abra la consola en el directorio principal del proyecto.
python manage.py runserver