<strong>from flask import Flask, request</strong>
<strong>import json</strong>
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
return '<h1>Serveur actif</h1>'
Méthode 1 : Paramètres dans l'URL
Cette méthode permet de transmettre des données directement dans le chemin de l'URL :
<strong>@app.route("/envoyer/<donnee>", methods=['GET'])</strong>
<strong>def envoyer_donnee(donnee):</strong>
# Conversion des caractères en binaires
donnee_binaire = ' '.join(format(ord(x), 'b') for x in donnee)
# Traitement des données...
resultat = traiter_donnees(donnee_binaire)
return '<h3>Données traitées : {}</h3>'.format(donnee)
def traiter_donnees(binaire):
# Logique de traitement
return "Succès"
Accessible via :
http://127.0.0.1:5000/envoyer/HelloWorld
Méthode 2 : Paramètres de requête (Query Parameters)
Cette approche utilise les paramètres de requête pour une transmission plus flexible :
<strong>@app.route("/api/envoi", methods=["GET"])</strong>
<strong>def api_envoi():</strong>
# Récupération des paramètres
params = request.args.to_dict()
destinataire = params.get('destinataire')
nom_destinataire = params.get('nom')
objet = params.get('objet')
message = params.get('contenu')
# Validation des paramètres
reponse = {'statut': 'erreur', 'details': None}
if not all([destinataire, objet, message]):
reponse['details'] = 'Paramètres manquants'
return json.dumps(reponse, ensure_ascii=False)
# Traitement du message
message_traite = traiter_message(message)
# Envoi de l'email (fonction à implémenter)
# envoyer_email(destinataire, objet, message_traite)
reponse['statut'] = 'succès'
reponse['details'] = {
'destinataire': destinataire,
'objet': objet,
'message': message_traite
}
return json.dumps(reponse, ensure_ascii=False)
def traiter_message(texte):
"""Traitement du contenu du message"""
return "Message reçu : {}".format(texte)
Accessible via :
http://127.0.0.1:5000/api/envoi?destinataire=exemple@email.com&nom=Jean&objet=Test&contenu=Bonjour
Démarrage du serveur
<strong>if __name__ == '__main__':</strong>
<strong>app.run(debug=True, host='0.0.0.0', port=5000)</strong>
Comparaison des méthodes
| Méthode | Avantages | Inconvénients |
|---|---|---|
| URL path | Simple, URL lisible | Quantité limitée de données |
| Query string | Flexible, paramètres nommés | URL plus longue |
La méthode GET est adaptée pour les opérations de lecture. Pour des opérations sensibles comme l'envoi d'emails, il est recommandé d'utiliser POST avec des mécanismes d'authentification appropriés.