Скорочувач URL
У цифрову еру довгі URL-адреси можуть стати перешкодою для продуктивності. Наш скорочувач URL на базі Django перетворює складні веб-адреси на зручні для поділку посилання. Цей інструмент дозволяє створювати власні короткі посилання, що відслідковують взаємодії та спрощують обмін інформацією. Наприкінці цього туторіалу ви отримаєте рішення для спрощення цифрової комунікації.
Налаштування вашого проєкту
- Встановіть необхідні пакети:
pip install django
- Створіть новий проєкт 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',
]
- Створіть модель 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}'
- Створіть в'юхи (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)
- Створіть шаблони в 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
```
Скорочувач URL
Отримайте повний код на https://github.com/Mathurdanduprolu/Day6URLShortner.git
- Слідкуйте за мною на Medium для більше туторіалів з Django та веб-розробки.
- Поділіться своїми враженнями та відгуками в коментарях — я буду радий вас почути!
- Не забудьте поставити лайк та поділитися цим блогом із вашою мережею.
Продовжуємо створювати дивовижні додатки разом! 🚀
Перекладено з: Day 6: Building a URL Shortener with Django