День 6: Створення скорочувача URL за допомогою Django

pic

Скорочувач URL

У цифрову еру довгі URL-адреси можуть стати перешкодою для продуктивності. Наш скорочувач URL на базі Django перетворює складні веб-адреси на зручні для поділку посилання. Цей інструмент дозволяє створювати власні короткі посилання, що відслідковують взаємодії та спрощують обмін інформацією. Наприкінці цього туторіалу ви отримаєте рішення для спрощення цифрової комунікації.

Налаштування вашого проєкту

  1. Встановіть необхідні пакети:
pip install django
  1. Створіть новий проєкт Django та додаток:
django-admin startproject urlshortener  
cd urlshortener  
python manage.py startapp shortener\

Додайте «shortener» до INSTALLED_APPS у settings.py.

# Опис застосунку  

INSTALLED_APPS = [  
 'django.contrib.admin',  
 'django.contrib.auth',  
 'django.contrib.contenttypes',  
 'django.contrib.sessions',  
 'django.contrib.messages',  
 'django.contrib.staticfiles',  
 'shortener',  
]
  1. Створіть модель URL у shortener/models.py:
from django.db import models  

class URL(models.Model):  
 original_url = models.URLField()  
 short_code = models.CharField(max_length=15, unique=True)  
 created_at = models.DateTimeField(auto_now_add=True)  

 def __str__(self):  
 return f'{self.original_url} to {self.short_code}'
  1. Створіть в'юхи (views) у shortener/views.py:
from django.shortcuts import render, redirect  
from .models import URL  
import random  
import string  

def generate_short_code():  
 characters = string.ascii_letters + string.digits  
 return ''.join(random.choice(characters) for _ in range(6))  

def shorten_url(request):  
 if request.method == 'POST':  
 original_url = request.POST['original_url']  
 custom_code = request.POST.get('custom_code')  

 if custom_code:  
 short_code = custom_code  
 else:  
 short_code = generate_short_code()  

 url, created = URL.objects.get_or_create(original_url=original_url, short_code=short_code)  
 short_url = request.build_absolute_uri(f'/{short_code}')  
 return render(request, 'shortener/result.html', {'short_url': short_url})  

 return render(request, 'shortener/shorten.html')  

def redirect_to_original(request, short_code):  
 url = URL.objects.get(short_code=short_code)  
 return redirect(url.original_url)
  1. Створіть шаблони в shortener/templates/shortener/:

shorten.html:

{% extends 'base.html' %}  

{% block content %}  

Скорочувач URL
       {% csrf_token %}            Скоротити URL      {% endblock %} ```  result.html:  ``` {% extends 'base.html' %}      {% block content %}   
Скорочене посилання
Ваше скорочене посилання: {{ short_url }}
Скоротити інше посилання   {% endblock %} ```  6. Налаштуйте маршрутизацію URL в urlshortener/urls.py:  ``` from django.contrib import admin   from django.urls import path   from shortener import views      urlpatterns = [    path('admin/', admin.site.urls),    path('', views.shorten_url, name='shorten_url'),    path('/', views.redirect_to_original, name='redirect_to_original'),   ] ```  7. Створіть шаблон urlshortener/templates/base.html у кореневій директорії шаблонів проєкту:  ```                                 {% block content %}    {% endblock %}           ```  8.
Запустіть міграції та сервер:

python manage.py makemigrations
python manage.py migrate
python manage.py runserver
```

pic

Скорочувач URL

Отримайте повний код на https://github.com/Mathurdanduprolu/Day6URLShortner.git

  • Слідкуйте за мною на Medium для більше туторіалів з Django та веб-розробки.
  • Поділіться своїми враженнями та відгуками в коментарях — я буду радий вас почути!
  • Не забудьте поставити лайк та поділитися цим блогом із вашою мережею.

Продовжуємо створювати дивовижні додатки разом! 🚀

Перекладено з: Day 6: Building a URL Shortener with Django

Leave a Reply

Your email address will not be published. Required fields are marked *