Единый указатель ресурса или, чаще, URL-адрес — это адрес контента в Интернете. URL-адреса часто содержат адрес веб-страницы, за которым следует длинная строка, казалось бы, случайных символов. Они могут быть неприглядными и незабываемыми. К счастью, существуют инструменты, называемые сокращателями URL-адресов, которые могут свести их к минимуму.

Сокращение URL-адреса имеет ряд преимуществ, в том числе упрощает обмен адресом и снижает вероятность его неправильного ввода пользователями. Даже один пропущенный символ в URL-адресе может сделать его совершенно бесполезным, направив пользователей не на ту страницу или на ресурс, которого даже не существует.

Возьмем пример https://example.com/blog-url-shorteners/48bfefiahl9adik сокращено до https://example.com/url-shorteners. Несложно понять, какими из сообщений пользователь будет более склонен делиться, а какие с большей вероятностью могут привести к ошибкам при наборе текста.

Преимущества сокращения URL-адресов выходят за рамки очистки длинных URL-адресов. Они также могут помочь в следующем:

  • Повышение рейтинга в поисковых системах: Создатели контента, компании и стартапы размещают контент на своих веб-сайтах, в блогах или в социальных сетях. Поисковые системы предпочитают ссылки с конкретными ключевыми словами, чтобы их можно было соответствующим образом ранжировать и генерировать хорошие результаты. Короткий URL-адрес, созданный на известной платформе, может помочь повысить рейтинг вашего URL-адреса.
  • Отслеживание трафика по вашим ссылкам: Платные службы сокращения URL-адресов, такие как Bitly, помогают вам отслеживать пользователей, нажимающих на ваши ссылки, чтобы вы могли анализировать входящий трафик и соответствующим образом настраивать свой контент.

Два подхода к сокращению URL-адресов: библиотека Python и API

Следуя инструкциям в этом руководстве, вы создадите веб-приложение для сокращения URL-адресов с помощью Python, используя два разных метода:

  • Библиотека Pyshorteners
  • Битли API

пишортенеры Модуль используется разработчиками для создания коротких URL-адресов, в то время как модуль Bitly API генерирует короткие URL-адреса и предоставляет более надежные функции, такие как количество кликов на URL-адрес, местоположение нажимаемых URL-адресов, настройку URL-адресов и многое другое.

Для прохождения руководства вам потребуются базовые знания Python, и Python должен быть установлен в вашей системе.

Настройка среды проекта

Прежде чем создавать веб-приложение для сокращения URL-адресов, вам необходимо настроить среду для проекта, включая установку Flask, облегченной платформы, которая упрощает разработку веб-приложений Python.

Начните с этих шагов:

  • Создайте папку проекта, возможно, с именем типа URL-сокращение.
  • Создайте пустой файл с именем main.py внутри этой папки.
  • Создайте виртуальную среду для этого проекта, чтобы любая установка библиотек Python оставалась независимой от вашей системы. Используйте команду python -m venv myenv в вашем терминале, чтобы создать эту среду. (В этом случае файлы окружения будут помещены в каталог Myenv.)
  • Активируйте виртуальную среду с помощью соответствующей команды для вашей операционной системы (и где <миенв> — это имя каталога, который вы создали на предыдущем шаге).
    • Окна: <myenv>\Scripts\activate.bat
    • Linux/macOS: source <myenv>/bin/activate
  • Установите Flask с помощью команды pip install flask.
  • Создайте папку с именем шаблоны в папке проекта. (Flask получит шаблоны HTML из этого каталога.)

Ваша работа в терминале на данный момент будет выглядеть примерно так:

Проект Python на данный момент в терминале macOS.

Используя пишортенеры Библиотека для создания веб-приложения для сокращения URL-адресов

Настроив среду проекта, вы создадите свой первый сокращатель URL-адресов, используя команду пишортенеры библиотека.

Установите пишортенеры библиотеку следующей командой:

pip install pyshorteners

Создание базового пользовательского интерфейса для веб-приложения

Далее вы создадите базовую форму в HTML с метками и полями ввода, в которую введете длинный URL-адрес и создадите более короткий.

Создать форма.html файл в шаблоны папку, затем введите следующий код в этот файл и сохраните его:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>URL Shortener</title>
</head>
<body>
  <h1>URL Shortener</h1>
  <form method="post" action="/">
    <label for="url">Enter an https:// URL:</label>
    <input type="url"
      name="url"
      id="url"
      placeholder="https://www.xyz.com"
      pattern="https://.*" size="50"
        value="{{old_url}}"
      required  
    >
    <button type="submit" value="submit">Submit</button>
    <br>
    <label>Generated URL: </label>
    <input name="generated_url" value="{{new_url}}" style="margin-top: 10px; margin-left:35px" size="50"></input>
  </form>
</body>
</html>

Приведенный выше код создает форму с двумя метками, двумя полями ввода и одной кнопкой.

Первое поле ввода под названием urlпредназначено для написания длинного URL-адреса, а другое поле предназначено для создания короткого URL-адреса.

url Поле ввода имеет следующие атрибуты:

  • name: Чтобы идентифицировать элемент (напримерURL)
  • placeholder: Чтобы показать пример URL-адреса
  • pattern: Чтобы указать шаблон URL-адреса, который https://.*
  • required: Чтобы ввести URL-адрес перед отправкой
  • value: Чтобы просмотреть старый URL-адрес

Второе поле ввода имеет value атрибут установлен на new_url. new_url это короткий URL-адрес, созданный пишортенеры библиотека из main.py файл (показан в следующем разделе).

Форма входа изображена на следующем скриншоте:

Снимок экрана: веб-форма для сокращения URL-адресов.
Веб-форма для сокращения URL-адресов.

Использование кода сокращения URL-адресов пишортенеры

Теперь, когда вы создали форму, вы можете добавить к ней некоторые функциональные возможности, используя Python и пишортенеры.

Вы добавите код для преобразования длинного URL-адреса в короткий и запустите веб-приложение. Перейдите к main.py файл, который вы создали ранее, введите следующий код и сохраните его:

from flask import Flask, render_template, request
import pyshorteners
app = Flask(__name__)
 
@app.route("/", methods=['POST', 'GET'])
def home():
  if request.method=="POST":
    url_received = request.form["url"]
    short_url = pyshorteners.Shortener().tinyurl.short(url_received)
    return render_template("form.html", new_url=short_url, old_url=url_received)
  else:
    return render_template('form.html')
 
if __name__ == "__main__":
 app.run() 

Код выше импортирует пишортенеры библиотека и следующие модули из платформы Flask, все из которых вам понадобятся для сокращения URL-адресов:

  • Flask: сам фреймворк Flask, который был представлен ранее.
  • render_template: пакет рендеринга шаблонов, используемый для генерации вывода HTML-файлов из папки. templates.
  • request: объект из платформы Flask, который содержит все данные, которые пользователь отправляет из внешнего интерфейса в серверную часть как часть HTTP-запроса.

Далее он создает функцию с именем home() который принимает URL-адрес, отправленный в форме, и выводит короткий URL-адрес. app.route() Декоратор используется для привязки функции к определенному URL-маршруту для запуска приложения, а методы POST/GET обрабатывают запросы.

в home() функция, есть if-else Условный оператор.

Для if заявление, если request.method=="POST"переменная с именем url_received установлено на request.form["url"], то есть URL-адрес, отправленный в форму. Здесь, url — это имя поля ввода, определенного в созданной ранее HTML-форме.

Затем переменная с именем short_url установлено на pyshorteners.Shortener().tinyurl.short(url_received).
Здесь используются два метода из пишортенеры библиотека: .Shortener() и .short(). .Shortener() функция создает пишортенеры экземпляр класса и .short() функция принимает URL-адрес в качестве аргумента и сокращает его.

short() функция, tinyurl.short()один из пишортенеры множество API библиотеки. osdb.short() — это еще один API, который также можно использовать для той же цели.

render_template() функция используется для рендеринга шаблона HTML-файла форма.html и отправлять URL-адреса обратно в форму через аргументы. new_url аргумент установлен в short_url и old_url установлено на url_received. if На этом область действия оператора заканчивается.

Для else оператор, если метод запроса отличается от POST, только форма.html HTML-шаблон будет отображен.

Демонстрация веб-приложения URL Shortener, созданного с помощью пишортенеры Библиотека

Чтобы продемонстрировать пишортенеры Приложение для сокращения URL-адресов, перейдите к маршруту по умолчанию для приложения, http://127.0.0.1:5000/после запуска приложения.

Вставьте ссылку по вашему выбору в первое поле веб-формы:

Скриншот URL-адреса, который нужно сократить, вставленный в веб-форму.
Тестирование сокращателя URL-адресов с использованием библиотеки pyshorteners.

Нажмите кнопку Представлять на рассмотрение кнопка для вывода короткого URL-адреса с помощью tinyurl в качестве домена в поле «Сгенерированный URL»:

Снимок экрана, показывающий сокращенный URL-адрес, возвращенный в веб-форме.
Результат сокращения URL-адреса с помощью библиотеки pyshorteners.

Использование модуля Bitly API для создания веб-приложения для сокращения URL-адресов

В этом разделе вы разработаете приложение для сокращения URL-адресов с использованием Bitly API. Как уже упоминалось, модуль Bitly API — это еще один метод сокращения URL-адресов, а также предоставляет подробный анализ кликов, местоположения и типа используемого устройства (например, настольного или мобильного устройства).

Установите Bitly API, используя следующую команду:

pip install bitly-api-py3

Для использования API Bitly вам понадобится токен доступа, который вы можете получить, зарегистрировавшись в Bitly.

После завершения процесса регистрации войдите в Bitly, чтобы просмотреть свою панель управления:

Скриншот панели управления Bitly.

Нажмите Настройки на левой боковой панели, затем нажмите кнопку API раздел находится под Настройки разработчика.

Создайте токен доступа, введя свой пароль в поле над Создать токен кнопку, как показано на рисунке ниже, и сохраните токен для использования в коде вашего приложения:

Скриншот создания токена доступа для Bitly API/
Генерация токена доступа для Bitly API.

Код сокращения URL-адресов с использованием Bitly API

Теперь, когда у вас есть токен от Bitly, вы можете написать код веб-приложения, чтобы сократить URL-адрес с помощью API Bitly.

Вы будете использовать ту же форму, которую создали для пишортенеры раздел, но с некоторыми изменениями в main.py файл:

from flask import Flask, render_template, request
import bitly_api
app = Flask(__name__)
 
bitly_access_token = "37b1xxxxxxxxxxxxxxxxxxxxxxxxxx"
 
@app.route("/", methods=['POST', 'GET'])
def home():
  if request.method=="POST":
    url_received = request.form["url"]
    bitly = bitly_api.Connection(access_token=bitly_access_token)
    short_url = bitly.shorten(url_received)
    return render_template("form.html", new_url=short_url.get('url'), old_url=url_received)
  else:
    return render_template('form.html')
 
if __name__ == "__main__":
 app.run() 

Как вы можете видеть из приведенного выше кода, bitly_api импортируется с использованием import bitly_api. Затем токен доступа сохраняется в переменной с именем bity_access_tokenкак в bitly_access_token = "37b1xxxxxxxxxxxxxxxxxxxxxxxx".

home() функция сокращает URL-адрес и содержит if-else Условный оператор.

Для if оператор, если метод или запрос POSTто для URL-адреса, отправленного в форме, будет установлено значение url_received переменная.

bitly_api.Connection(access_token=bitly_access_token) Функция подключается к Bitly API и передает ему токен доступа, который вы сохранили ранее, в качестве аргумента.

Чтобы сократить URL-адрес, bitly.shorten() функция используется путем передачи url_received переменную в качестве аргумента и сохранить ее в переменной с именем short_url.

Наконец, созданная форма отображается, и URL-адреса отправляются обратно для отображения в форме с помощью render_template() функция. if заявление завершается здесь.

Для else оператор, форма отображается с использованием render_template() функция.

Демонстрация веб-приложения URL Shortener, созданного с помощью Bitly API

Чтобы продемонстрировать приложение для сокращения URL-адресов Bitly API, перейдите к маршруту по умолчанию для приложения: http://127.0.0.1:5000/после запуска приложения.

Вставьте ссылку по вашему выбору в первое поле веб-формы:

Снимок экрана: веб-форма для API сокращения URL-адресов Bitly.
Тестирование сокращателя URL-адресов с использованием Bitly API.

Нажмите Представлять на рассмотрение для создания короткого URL-адреса с помощью bit.ly в качестве домена во втором поле веб-приложения:

Снимок экрана сокращенного URL-адреса, возвращаемого Bitly API.
Результат сокращения URL-адреса с помощью Bitly API.

Использовать Bitly API для сокращения URL-адресов в вашем приложении Python очень просто.

Краткое содержание

Сокращатели URL-адресов предоставляют вам короткие URL-адреса, которыми легко поделиться, которые выглядят чище и занимают меньше места. В этой статье вы узнали о сокращателях URL-адресов и их преимуществах, а также о том, как создать веб-приложение для сокращения URL-адресов с помощью Python, используя пишортенеры и Bitly API. пишортенеры библиотека предоставляет короткие URL-адреса, а Bitly API предоставляет подробную аналитику, а также короткие URL-адреса.

Поскольку вы уже создали потрясающее приложение, почему бы не вывести его на новый уровень и не разместить на службе хостинга приложений Kinsta Wed? Чтобы помочь вам запустить подобное приложение Python на нашей платформе, изучите наше руководство по быстрому запуску Flask.