Tutoriel de base sur le framewok bottle 🥂
Bottle est un micro-framework WSGI léger et rapide pour Python. Parfait pour les API RESTful, les prototypes et les petites applications web, il se distingue par sa simplicité et son absence de dépendances externes.
Bottle peut être installé simplement via pip (Python 3.6+ requis) :
pip install bottle
Alternative : Bottle peut aussi être utilisé en copiant simplement le fichier bottle.py
dans votre projet, car c'est un framework mono-fichier.
Créez un fichier app.py
avec le contenu suivant :
from bottle import route, run
@route('/')
def home():
return "Hello World!"
run(host='localhost', port=8080, debug=True)
Exécutez avec : python app.py
puis visitez http://localhost:8080
Bottle supporte différents types de paramètres dans les URLs :
# Paramètre simple
@route('/hello/<name>')
def greet(name):
return f"Bonjour {name}!"
# Paramètre avec filtre (nombre entier)
@route('/article/<id:int>')
def show_article(id):
return f"Article #{id}"
# Paramètre avec filtre (expression régulière)
@route('/static/<filepath:path>')
def serve_static(filepath):
return static_file(filepath, root='/path/to/static/files')
Gestion des différentes méthodes HTTP et données de formulaire :
from bottle import request, post, get
@get('/login') # ou @route('/login', method='GET')
def login_form():
return '''<form action="/login" method="post">
Utilisateur: <input name="username" type="text" />
Mot de passe: <input name="password" type="password" />
<input value="Login" type="submit" />
</form>'''
@post('/login') # ou @route('/login', method='POST')
def login_submit():
username = request.forms.get('username')
password = request.forms.get('password')
return f"Connexion de {username} réussie!"
Bottle inclut un moteur de templates simple mais puissant :
from bottle import template
@route('/hello/<name>')
def greet(name):
return template('hello_template', username=name)
Créez un fichier hello_template.tpl
:
<!DOCTYPE html>
<html>
<head>
<title>Page de bienvenue</title>
</head>
<body>
<h1>Bonjour {{username}}!</h1>
<p>Vous visitez cette page le {{date}}</p>
</body>
</html>
Exemple simple d'API REST avec retour JSON :
from bottle import route, run, response
import json
fruits = [
{"id": 1, "name": "Pomme", "quantity": 10},
{"id": 2, "name": "Banane", "quantity": 15}
]
@route('/api/fruits', method='GET')
def get_fruits():
response.content_type = 'application/json'
return json.dumps(fruits)
@route('/api/fruits/<id:int>', method='GET')
def get_fruit(id):
fruit = next((f for f in fruits if f['id'] == id), None)
if fruit:
response.content_type = 'application/json'
return json.dumps(fruit)
else:
response.status = 404
return json.dumps({"error": "Fruit non trouvé"})
Pour déployer en production, utilisez un serveur WSGI comme Gunicorn :
# Installation de Gunicorn
pip install gunicorn
# Lancement du serveur
gunicorn -w 4 -b 0.0.0.0:8080 app:app
Ou avec le serveur intégré (pour le développement seulement) :
run(host='0.0.0.0', port=8080, server='paste')
Bottle est un excellent choix pour :
Pour aller plus loin, consultez la documentation officielle.
Dans cette activité, vous allez créer un petit site statique en utilisant le framework Bottle. Ce site comportera plusieurs pages, notamment une page d'accueil, une page "À propos" et une page de contact.
Si ce n'est pas déjà fait, installez Bottle en utilisant la commande suivante :
pip install bottle
Créez un fichier Python nommé app.py
et ajoutez le code suivant pour créer votre application :
from bottle import Bottle, run, template
app = Bottle()
@app.route('/')
def home():
return template('home')
@app.route('/about')
def about():
return template('about')
@app.route('/contact')
def contact():
return template('contact')
run(app, host='localhost', port=8080)
Créez un dossier nommé views
et ajoutez-y trois fichiers HTML :
home.tpl
about.tpl
contact.tpl
Voici un exemple de contenu pour chaque fichier :
home.tpl
<h1>Bienvenue sur notre site</h1>
<p>Ceci est la page d'accueil.</p>
<a href="/about">À propos</a> <|> <a href="/contact">Contact</a>
about.tpl
<h1>À propos</h1>
<p>Informations sur notre site.</p>
<a href="/">Retour à l'accueil</a>
contact.tpl
<h1>Contact</h1>
<p>Formulaire de contact à venir.</p>
<a href="/">Retour à l'accueil</a>
Pour lancer votre application, exécutez le fichier app.py
:
python app.py
Ouvrez votre navigateur et allez à http://localhost:8080
pour voir votre site en action !
Vous avez maintenant créé un petit site statique avec Bottle. Vous pouvez étendre ce projet en ajoutant plus de pages, des formulaires et même une base de données pour stocker des informations !
Dans cette activité, vous allez créer un site dynamique en utilisant le framework Bottle. Ce site comportera un formulaire permettant aux utilisateurs de soumettre des informations, que vous pourrez afficher sur une page de confirmation.
Si ce n'est pas déjà fait, installez Bottle en utilisant la commande suivante :
pip install bottle
Créez un fichier Python nommé app.py
et ajoutez le code suivant pour créer votre application dynamique :
from bottle import Bottle, run, template, request
app = Bottle()
@app.route('/')
def home():
return template('form')
@app.route('/submit', method='POST')
def submit():
name = request.forms.get('name')
email = request.forms.get('email')
return template('confirmation', name=name, email=email)
run(app, host='localhost', port=8080)
Créez un dossier nommé views
et ajoutez-y deux fichiers HTML :
form.tpl
confirmation.tpl
Voici un exemple de contenu pour chaque fichier :
form.tpl
<h1>Formulaire de Contact</h1>
<form action="/submit" method="post">
<label for="name">Nom :</label><br>
<input type="text" name="name" required><br>
<label for="email">Email :</label><br>
<input type="email" name="email" required><br>
<input type="submit" value="Soumettre">
</form>
confirmation.tpl
<h1>Confirmation</h1>
<p>Merci, <strong>{{name}}</strong>!</p>
<p>Votre email : <strong>{{email}}</strong></p>
<a href="/">Retour au formulaire</a>
Pour lancer votre application, exécutez le fichier app.py
:
python app.py
Ouvrez votre navigateur et allez à http://localhost:8080
pour voir votre site en action ! Remplissez le formulaire et soumettez-le pour voir la page de confirmation.
Vous avez maintenant créé un site dynamique avec un formulaire en utilisant Bottle. Cette base peut être étendue pour inclure des fonctionnalités supplémentaires comme la validation des données, l'enregistrement dans une base de données, et plus encore !
Abonnez-vous maintenant et recevez notre newsletter hebdomadaire avec des matériaux éducatifs, de nouveaux cours, des articles intéressants, des livres populaires et bien plus encore !