Un localisateur de ressources uniformes – ou, plus communément, URL – est l’adresse d’un contenu sur l’internet. Les URL comportent souvent l’adresse d’une page web suivie d’une longue chaîne de caractères apparemment aléatoires. Ces caractères peuvent être disgracieux et peu mémorisables. Heureusement, il existe des outils appelés raccourcisseurs d’URL qui permettent de les minimiser.

Le raccourcissement d’une URL présente plusieurs avantages, notamment celui de rendre l’adresse plus facile à partager et moins susceptible d’être saisie de manière incorrecte par les utilisateurs. Un seul caractère manquant dans une URL peut la rendre complètement inutile, en dirigeant les utilisateurs vers la mauvaise page ou vers une ressource qui n’existe même pas.

Prenez l’exemple de https://example.com/blog-url-shorteners/48bfefiahl9adik raccourci en https://example.com/url-shorteners. Il n’est pas difficile de voir ce qu’un utilisateur serait plus enclin à partager, ou ce qui serait plus susceptible de conduire à des erreurs lors de la saisie.

Les avantages d’un raccourcisseur d’URL ne se limitent pas à mettre de l’ordre dans les longues URL. Ils peuvent également vous aider dans les cas suivants :

  • Améliorer le classement dans les moteurs de recherche : Les créateurs de contenu, les entreprises et les start-ups ont tous du contenu sur leurs sites web, leurs blogs ou leurs médias sociaux. Les moteurs de recherche préfèrent les liens contenant des mots clés spécifiques afin qu’ils puissent être classés en conséquence et générer de bons résultats. Une URL courte générée à partir d’une plateforme connue peut aider à mieux classer votre URL.
  • Suivre le trafic sur vos liens : Les services payants de raccourcissement d’URL comme Bitly vous aident à suivre les utilisateurs qui cliquent sur vos liens, ce qui vous permet d’analyser votre trafic entrant et d’adapter votre contenu en conséquence.

Deux approches pour un raccourcisseur d’URL : Une bibliothèque Python et une API

En suivant les instructions de ce tutoriel, vous construirez une application web de raccourcissement d’URL avec Python en utilisant deux méthodes différentes :

Le module pyshorteners est utilisé par les développeurs pour générer des URL courtes, tandis que le module Bitly API génère des URL courtes et fournit des fonctions plus robustes comme les clics par URL, les emplacements des URL cliquées, la personnalisation des URL, et plus encore.

Pour compléter ce tutoriel, vous aurez besoin d’une connaissance de base de Python, et Python doit être installé sur votre système.

Configuration de l’environnement du projet

Avant de créer votre application web de raccourcissement d’URL, vous devez configurer l’environnement du projet, y compris l’installation de Flask, un framework léger qui facilite le développement d’applications web en Python.

Commencez par les étapes suivantes :

  • Créez un dossier de projet, peut-être avec un nom comme url-shortener.
  • Créez un fichier vide nommé main.py dans ce dossier.
  • Créez un environnement virtuel pour ce projet afin que toute installation de bibliothèques Python reste indépendante de votre système. Utilisez la commande python -m venv myenv dans votre terminal pour créer cet environnement. (Dans ce cas, les fichiers d’environnement seront placés dans le répertoire myenv)
  • Activez l’environnement virtuel à l’aide de la commande correspondant à votre système d’exploitation (et où <myenv> est le nom du répertoire que vous avez créé à l’étape précédente).
    • Windows : <myenv>Scriptsactivate.bat
    • Linux/macOS : source <myenv>/bin/activate
  • Installez Flask à l’aide de la commande pip install flask.
  • Créez un dossier nommé templates dans le dossier du projet. (Flask récupérera les modèles HTML dans ce répertoire)

Votre travail dans le terminal jusqu’à présent ressemblera à quelque chose comme ceci :

Le projet Python dans un terminal macOS.
Le projet Python dans un terminal macOS.

Utilisation de la bibliothèque pyshorteners pour créer une application web de raccourcissement d’URL

Une fois l’environnement de votre projet mis en place, vous allez maintenant créer votre premier raccourcisseur d’URL à l’aide de la bibliothèque pyshorteners.

Installez la bibliothèque pyshorteners à l’aide de la commande suivante :

pip install pyshorteners

Création d’une interface utilisateur de base pour l’application web

Ensuite, vous allez créer un formulaire de base en HTML avec des libellés et des champs de saisie, dans lequel vous entrerez une URL longue et en génèrerez une plus courte.

Créez un fichier form.html dans le dossier templates, puis saisissez le code suivant dans ce fichier et enregistrez-le :

<!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>

Le code ci-dessus crée un formulaire avec deux libellés, deux champs de saisie et un bouton.

Le premier champ de saisie, appelé url, sert à écrire l’URL longue, et l’autre champ sert à générer l’URL courte.

Le champ de saisie url possède les attributs suivants :

  • name: Pour identifier l’élément(par exemple, l’URL)
  • placeholder: Pour montrer un exemple d’URL
  • pattern: Pour spécifier le modèle d’une URL qui est https://.*
  • required: Pour donner une entrée d’URL avant de soumettre
  • value: Afficher l’ancienne URL

Le deuxième champ de saisie a un attribut value défini sur new_url. new_url est une URL courte générée par la bibliothèque pyshorteners à partir du fichier main.py (illustré dans la section suivante).

Le formulaire de saisie est représenté dans la capture d’écran suivante :

Formulaire web pour le raccourcisseur d'URL.
Formulaire web pour le raccourcisseur d’URL.

Code de raccourcissement d’URL à l’aide de pyshorteners

Maintenant que vous avez créé le formulaire, vous pouvez lui ajouter quelques fonctionnalités en utilisant Python et pyshorteners.

Vous allez ajouter du code pour transformer l’URL longue en URL courte et exécuter l’application web. Naviguez jusqu’au fichier main.py que vous avez créé plus tôt, saisissez le code suivant et sauvegardez-le :

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() 

Le code ci-dessus importe la bibliothèque pyshorteners et les modules suivants du framework Flask, dont vous aurez tous besoin pour raccourcir les URL :

  • Flask: Le framework Flask lui-même, qui a été présenté précédemment.
  • render_template: Un paquete de rendu de modèle utilisé pour générer la sortie des fichiers HTML à partir du dossier templates.
  • request: Un objet du framework Flask qui contient toutes les données qu’un utilisateur envoie du frontend au backend dans le cadre d’une requête HTTP.

Ensuite, il crée une fonction appelée home() qui prend une URL soumise dans le formulaire et produit une URL courte. Le décorateur app.route() est utilisé pour lier la fonction à la route URL spécifique pour l’exécution de l’application, et les méthodes POST/GET gèrent les requêtes.

La fonction home() contient une instruction conditionnelle if-else.

Pour l’instruction if, si request.method=="POST", une variable appelée url_received est définie à request.form["url"], qui est l’URL soumise dans le formulaire. Ici, url est le nom du champ de saisie défini dans le formulaire HTML créé précédemment.

Ensuite, une variable appelée short_url est définie à pyshorteners.Shortener().tinyurl.short(url_received).
Deux méthodes de la bibliothèque pyshorteners sont utilisées ici : .Shortener() et .short(). La fonction .Shortener() crée une instance de classe pyshorteners et la fonction .short() prend l’URL en argument et la raccourcit.

La fonction short(), tinyurl.short(), est l’une des nombreuses API de la bibliothèque pyshorteners. osdb.short() est une autre API qui peut également être utilisée dans le même but.

La fonction render_template() est utilisée pour rendre le fichier HTML template form.html et renvoyer des URL au formulaire par le biais d’arguments. L’argument new_url est défini à et old_url est défini à url_received. La portée de l’instruction if s’arrête ici.

Pour l’instruction else, si la méthode de requête est autre que POST, seul le modèle HTML form.html sera rendu.

Démonstration de l’application web de raccourcissement d’URL construite avec la bibliothèque pyshorteners

Pour démontrer l’application de raccourcissement d’URL pyshorteners, naviguez vers la route par défaut de l’application, http://127.0.0.1:5000/, après avoir exécuté l’application.

Collez un lien de votre choix dans le premier champ du formulaire web :

Test du raccourcisseur d'URL à l'aide de la bibliothèque pyshorteners.
Test du raccourcisseur d’URL à l’aide de la bibliothèque pyshorteners.

Cliquez sur le bouton Submit pour obtenir une URL courte avec tinyurl comme domaine dans le champ URL générée :

Résultat du raccourcissement d'URL à l'aide de la bibliothèque pyshorteners.
Résultat du raccourcissement d’URL à l’aide de la bibliothèque pyshorteners.

Utilisation du module Bitly API pour créer une application Web de raccourcissement d’URL

Dans cette section, vous allez développer une application de raccourcissement d’URL en utilisant l’API Bitly. Comme nous l’avons mentionné, le module Bitly API est une autre méthode pour raccourcir les URL et fournit également des analyses détaillées sur les clics, l’emplacement et le type d’appareil utilisé (ordinateur de bureau ou mobile).

Installez l’API Bitly à l’aide de la commande suivante :

pip install bitly-api-py3

Vous avez besoin d’un jeton d’accès pour utiliser l’API Bitly, que vous pouvez obtenir en vous inscrivant à Bitly.

Une fois la procédure d’inscription terminée, connectez-vous à Bitly pour afficher votre tableau de bord :

Screenshot of the Bitly dashboard.

Cliquez sur Settings dans la colonne latérale de gauche, puis cliquez sur la section API sous Developer settings.

Générez un jeton d’accès en saisissant votre mot de passe dans le champ situé au-dessus du bouton Generate token, comme le montre l’image ci-dessous, et conservez le jeton pour l’utiliser dans le code de votre application :

Générer un jeton d'accès pour l'API Bitly.
Générer un jeton d’accès pour l’API Bitly.

Code de raccourcissement d’URL à l’aide de l’API Bitly

Maintenant que vous avez le jeton de Bitly, vous pouvez coder l’application web pour raccourcir l’URL à l’aide de l’API Bitly.

Vous utiliserez le même formulaire que vous avez créé pour la section pyshorteners mais avec quelques changements dans le fichier 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() 

Comme vous pouvez le voir dans le code ci-dessus, bitly_api est importé en utilisant import bitly_api. Le jeton d’accès est ensuite sauvegardé dans une variable appelée bity_access_token, comme dans bitly_access_token = "37b1xxxxxxxxxxxxxxxxxxxxxxxx".

La fonction home() raccourcit l’URL et contient une instruction conditionnelle if-else.

Pour l’instruction if, si la méthode ou la requête est POST, l’URL soumise dans le formulaire est définie dans la variable url_received.

La fonction bitly_api.Connection(access_token=bitly_access_token) se connecte à l’API Bitly et lui transmet le jeton d’accès que vous avez enregistré précédemment comme argument.

Pour raccourcir l’URL, la fonction bitly.shorten() est utilisée en passant la variable url_received comme argument et en l’enregistrant dans une variable appelée short_url.

Enfin, le formulaire créé est rendu et les URL sont renvoyées pour être affichées dans le formulaire à l’aide de la fonction render_template(). La déclaration if se termine ici.

Pour l’instruction else, le formulaire est rendu à l’aide de la fonction render_template().

Démonstration de l’application web de raccourcissement d’URL construite avec l’API Bitly

Pour utiliser l’application Bitly API URL shortener, naviguez vers la route par défaut de l’application, http://127.0.0.1:5000/, après avoir exécuté l’application.

Collez un lien de votre choix dans le premier champ du formulaire web :

Test du raccourcisseur d'URL à l'aide de l'API Bitly.
Test du raccourcisseur d’URL à l’aide de l’API Bitly.

Cliquez sur Submit pour générer une URL courte avec bit.ly comme domaine dans le deuxième champ de l’application web :

Résultat du raccourcissement d'URL à l'aide de l'API Bitly.
Résultat du raccourcissement d’URL à l’aide de l’API Bitly.

L’utilisation de l’API Bitly pour raccourcir les URL dans votre application Python est aussi simple que cela.

Résumé

Les raccourcisseurs d’URL vous permettent d’obtenir des URL courtes, faciles à partager, plus propres et moins encombrantes. Dans cet article, vous avez découvert les raccourcisseurs d’URL et leurs avantages, ainsi que la manière de créer une application web de raccourcissement d’URL avec Python en utilisant pyshorteners et l’API Bitly. La bibliothèque pyshorteners fournit des URL courtes, tandis que l’API Bitly fournit des analyses détaillées ainsi que des URL courtes.

Puisque vous avez déjà créé une application géniale, pourquoi ne pas passer à l’étape suivante et l’héberger sur le service d’hébergement d’applications web de Kinsta ? Pour vous aider à mettre en place une application Python comme celle-ci sur notre plateforme, consultez notre tutoriel de démarrage rapide Flask.

Adarsh Chimnani

Adarsh is a web developer (MERN stack), passionate about game-level designing (Unity3D), and an anime enthusiast. He enjoys absorbing knowledge just out of curiosity, implementing what he has learned in the real world, and sharing that knowledge with others.