Сократители URL-адресов стали популярной услугой в Интернете. Такие компании, как bitly, делают на них огромные состояния. Но иногда, когда вы хотите получить собственный URL, вам приходится платить за услугу. Поэтому в этом уроке я собираюсь показать вам, как создать сервис сократителя URL в Django.
В этом уроке я ожидаю, что вы знакомы с шаблонами и формами, потому что я не буду их рассматривать, а просто покажу вам, как прагматично создать сервис в коде python.
Установка
Для установки проекта нам понадобится только один пакет — django-urlshortner. Поэтому начнем с установки пакета с помощью pip. Это предполагает, что вы уже установили проект django.
pip install django-urlshortner
После этого вы должны добавить приложение urlshortner в INSTALLED_APPS в файле settings.py
Конфигурация
INSTALLED_APPS = [
# ....
"urlshortner"
]
Затем вы мигрируете модели в вашу базу данных
python3 manage.py migrate
Наконец, добавьте маршруты в URLConf в urls.py вашего проекта.
url_patterns = [
# ...
path("r/", include("urlshortner.urls")),
]
Теперь вы готовы к работе.
Использование
Библиотека предоставляет список инструментов для создания укороченных урлов.
Для создания короткой версии url используйте функцию shorten_url из модуля urlshortner.utils.
# python3 manage.py shell
from urlshortner.utils import shorten_url
url_route = shorten_url(
"https://github.com/jim-junior/django-urlshortner",
is_permanent=False
)
print(url_route)
# >>> 0ee3f0
Теперь вы можете перейти по маршруту, который вы назначили для urlshortner.urls в URLConf, добавив возвращаемое значение в конец url. В данном случае это будет http://localhost:8000/r/0ee3f0/, и это перенаправит вас на нужный URL.
Иногда вы хотите создать собственный URL. Например, вы хотите создать короткую ссылку для блога о вашем новом продукте, и вам нужен легко запоминающийся URL. Это можно легко сделать, добавив аргумент value в функцию shorten_url
from urlshortner.utils import shorten_url
url_route = shorten_url(
"https://myblog.com/blog/2022/10/10/..../my-new-product",
value="NewProduct"
is_permanent=False
)
Теперь вы можете перейти на сайт https://localhost/r/NewProduct, и он перенаправит вас.
Теперь, когда вы знаете, как использовать пакет, я думаю, вы сможете интегрировать его в свой проект.
Надеюсь, эта статья была полезной. Вы можете присвоить проекту звезду на Github или, если у вас есть идеи для дополнения, вы можете внести свой вклад в его репозиторий. И, кстати, я являюсь автором этой библиотеки.