La programmation web est un domaine vaste et passionnant, et Python est l’un des langages les plus populaires pour développer des applications web. Parmi les nombreux frameworks disponibles pour Python, Flask est un choix privilégié pour les développeurs qui cherchent à créer des applications web simples et efficaces. Dans cet article, nous allons explorer les bases de la programmation web avec Python et Flask, et vous fournir un guide pratique pour démarrer.
1. Introduction à Flask
Flask est un framework web léger et flexible pour Python. Il est souvent décrit comme un micro-framework car il fournit les fonctionnalités de base nécessaires pour développer une application web sans imposer une structure rigide ou des dépendances lourdes. Flask est conçu pour être simple et extensible, ce qui en fait un excellent choix pour les projets allant de petites applications à des systèmes plus complexes.
1.1. Pourquoi Choisir Flask ?
- Simplicité : Flask offre une API simple et facile à comprendre, ce qui facilite la prise en main pour les débutants.
- Flexibilité : Vous pouvez personnaliser votre application comme vous le souhaitez, sans être contraint par des conventions strictes.
- Extensibilité : Flask permet d’ajouter facilement des extensions pour ajouter des fonctionnalités telles que la gestion des bases de données, l’authentification, et plus encore.
2. Installation de Flask
Avant de commencer, vous devez installer Flask. Vous pouvez le faire facilement à l’aide de pip
, le gestionnaire de packages Python.
pip install Flask
3. Créer une Application Flask de Base
Voyons comment créer une application web simple avec Flask.
3.1. Code de Base
Créez un fichier nommé app.py
et ajoutez le code suivant :
from flask import Flask
app = Flask(__name__)
@app.route('/')
def accueil():
return "Bonjour, Monde!"
if __name__ == '__main__':
app.run(debug=True)
3.2. Explication du Code
Flask(__name__)
: Crée une instance de l’application Flask.@app.route('/')
: Définit une route pour la page d’accueil (l’URL/
).accueil()
: Fonction qui renvoie le texte « Bonjour, Monde! » lorsque l’utilisateur accède à la page d’accueil.app.run(debug=True)
: Démarre le serveur web en mode debug, ce qui permet de voir les erreurs en temps réel et de recharger automatiquement l’application lors de modifications.
3.3. Lancer l’Application
Pour lancer l’application, exécutez le fichier app.py
:
python app.py
Ouvrez un navigateur et accédez à http://127.0.0.1:5000/
pour voir le résultat.
4. Travailler avec des Templates HTML
Flask permet de rendre des templates HTML dynamiques en utilisant le moteur de templates Jinja2.
4.1. Créer un Template HTML
Créez un répertoire nommé templates
dans le même dossier que app.py
. Ajoutez un fichier nommé index.html
dans ce répertoire :
<!DOCTYPE html>
<html>
<head>
<title>Page d'Accueil</title>
</head>
<body>
<h1>{{ message }}</h1>
</body>
</html>
4.2. Modifier l’Application Flask
Modifiez app.py
pour utiliser le template HTML :
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def accueil():
return render_template('index.html', message="Bonjour, Monde!")
if __name__ == '__main__':
app.run(debug=True)
4.3. Explication du Code
render_template('index.html', message="Bonjour, Monde!")
: Utilise le fichierindex.html
comme template et passe la variablemessage
à ce template.
5. Gestion des Formulaires
Flask simplifie la gestion des formulaires web grâce à des outils comme request
pour obtenir les données des formulaires.
5.1. Créer un Formulaire HTML
Ajoutez un formulaire simple à index.html
:
<!DOCTYPE html>
<html>
<head>
<title>Page d'Accueil</title>
</head>
<body>
<h1>{{ message }}</h1>
<form method="post" action="/soumettre">
<input type="text" name="nom" placeholder="Entrez votre nom">
<input type="submit" value="Envoyer">
</form>
</body>
</html>
5.2. Ajouter une Route pour le Formulaire
Modifiez app.py
pour gérer la soumission du formulaire :
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def accueil():
return render_template('index.html', message="Bonjour, Monde!")
@app.route('/soumettre', methods=['POST'])
def soumettre():
nom = request.form.get('nom')
return f"Bonjour, {nom}!"
if __name__ == '__main__':
app.run(debug=True)
5.3. Explication du Code
request.form.get('nom')
: Récupère la valeur du champnom
envoyé via le formulaire.
6. Gestion des Routes Dynamique
Les routes dynamiques vous permettent de capturer des paramètres à partir des URL.
6.1. Définir une Route Dynamique
Ajoutez une route dynamique à app.py
:
@app.route('/bonjour/<nom>')
def bonjour(nom):
return f"Bonjour, {nom}!"
6.2. Tester la Route Dynamique
Accédez à http://127.0.0.1:5000/bonjour/Jean
dans votre navigateur pour voir la réponse dynamique.
7. Utiliser une Base de Données
Pour gérer des données persistantes, vous pouvez utiliser une base de données avec Flask. SQLAlchemy est un ORM (Object-Relational Mapping) populaire pour cette tâche.
7.1. Installer SQLAlchemy
Installez SQLAlchemy avec pip :
pip install Flask-SQLAlchemy
7.2. Configurer la Base de Données
Ajoutez la configuration de la base de données à app.py
:
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)
class Utilisateur(db.Model):
id = db.Column(db.Integer, primary_key=True)
nom = db.Column(db.String(100), nullable=False)
@app.route('/')
def accueil():
utilisateurs = Utilisateur.query.all()
return render_template('index.html', utilisateurs=utilisateurs)
if __name__ == '__main__':
db.create_all()
app.run(debug=True)
7.3. Utiliser la Base de Données dans les Templates
Modifiez index.html
pour afficher les utilisateurs :
<!DOCTYPE html>
<html>
<head>
<title>Page d'Accueil</title>
</head>
<body>
<h1>Liste des Utilisateurs</h1>
<ul>
{% for utilisateur in utilisateurs %}
<li>{{ utilisateur.nom }}</li>
{% endfor %}
</ul>
</body>
</html>
Conclusion
Flask est un framework puissant et flexible pour développer des applications web avec Python. En suivant cet article, vous avez appris à créer une application Flask de base, à travailler avec des templates HTML, à gérer des formulaires et des routes dynamiques, et à utiliser une base de données avec SQLAlchemy. Avec ces compétences, vous êtes bien équipé pour explorer davantage le développement web avec Flask et créer des applications web robustes et évolutives.
Abonnez-vous à notre Newsletter !
Restez à jour avec les dernières tendances, articles et actualités directement dans votre boîte de réception. En vous abonnant à la newsletter de Wordly Fusion, vous recevrez des contenus exclusifs, des recommandations personnalisées, et les nouveautés les plus passionnantes de notre site. Ne manquez aucune mise à jour et soyez toujours informé des sujets qui vous intéressent. Inscrivez-vous dès maintenant pour rejoindre notre communauté !