Единый указатель ресурса или, чаще, 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 из этого каталога.)
Ваша работа в терминале на данный момент будет выглядеть примерно так:
Используя пишортенеры Библиотека для создания веб-приложения для сокращения 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-адресов пишортенеры
Теперь, когда вы создали форму, вы можете добавить к ней некоторые функциональные возможности, используя 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-адреса с помощью tinyurl
в качестве домена в поле «Сгенерированный URL»:
Использование модуля Bitly API для создания веб-приложения для сокращения URL-адресов
В этом разделе вы разработаете приложение для сокращения URL-адресов с использованием Bitly API. Как уже упоминалось, модуль Bitly API — это еще один метод сокращения URL-адресов, а также предоставляет подробный анализ кликов, местоположения и типа используемого устройства (например, настольного или мобильного устройства).
Установите Bitly API, используя следующую команду:
pip install bitly-api-py3
Для использования API Bitly вам понадобится токен доступа, который вы можете получить, зарегистрировавшись в Bitly.
После завершения процесса регистрации войдите в 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/после запуска приложения.
Вставьте ссылку по вашему выбору в первое поле веб-формы:
Нажмите Представлять на рассмотрение для создания короткого URL-адреса с помощью bit.ly
в качестве домена во втором поле веб-приложения:
Использовать Bitly API для сокращения URL-адресов в вашем приложении Python очень просто.
Краткое содержание
Сокращатели URL-адресов предоставляют вам короткие URL-адреса, которыми легко поделиться, которые выглядят чище и занимают меньше места. В этой статье вы узнали о сокращателях URL-адресов и их преимуществах, а также о том, как создать веб-приложение для сокращения URL-адресов с помощью Python, используя пишортенеры и Bitly API. пишортенеры библиотека предоставляет короткие URL-адреса, а Bitly API предоставляет подробную аналитику, а также короткие URL-адреса.
Поскольку вы уже создали потрясающее приложение, почему бы не вывести его на новый уровень и не разместить на службе хостинга приложений Kinsta Wed? Чтобы помочь вам запустить подобное приложение Python на нашей платформе, изучите наше руководство по быстрому запуску Flask.