Etape 1 :Installation et démarrage
- Installer Python https://www.python.org/downloads/
- Installer le module flask
pip install Flask
Création du serveur
- Dans un fichier index.py
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ =='__main__': app.run(debug=True)
- Lancer le serveur puis y accéder
python index.py
- Implémenter l’URI /bonjour qui devra renvoyer le message bonjour
Exemple de code serveur
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if__name__ =='__main__': app.run(debug=True)
Etape 2 : Récupération d’information via l’URL
- Réaliser une page formulaire.html qui permette de saisir un login et un mot de passe.
- Récupérer les informations sur Flask grâce à une page index.py et renvoyer les 2 valeurs au navigateur.
Exemple de code client
$( document ).ready(function() { $('#btn-new-liste').click(function(){ let idx=$('#idx').val(); $.ajax({ type: "GET", url: "http://localhost/serveur/gateau/"+idx, success: function(data){ $("#result").html(data); } }); }); });
Exemple de code serveur
@app.route('/gateau/<id>') def success(id): return 'gateau %s' % id
Etape 3 : Récupération d’information via des paramètres dans l’URL
- Installer le module flask-mysql pour pouvoir accéder à une base de données
- Réaliser un formulaire de création d’un client.
- Envoyer les informations à Flask en JSON avec la méthode POST.
- Récupérer les informations sur le serveur Flask
- Réaliser une insertion du client grâce à une requête SQL sur le serveur Flask.
Exemple de code client
$('#btn-valide').click(function(){ let id=$('#id').val(); let nom=$('#nom').val(); $.ajax({ type: "POST", contentType: 'application/json; charset=utf-8', url: "http://localhost/serveur/gateau?id="+id+"&nom="+nom, success: function(data){ //gateau enregistré alert("gateau enregistré"); } }); });
Exemple de code serveur
from flask import Flask from flask import request from flaskext.mysql import MySQL import json app = Flask(__name__) mysql = MySQL() app.config['MYSQL_DATABASE_USER'] = 'root' app.config['MYSQL_DATABASE_PASSWORD'] = '' app.config['MYSQL_DATABASE_DB'] = 'patisserie' app.config['MYSQL_DATABASE_HOST'] = 'localhost' mysql.init_app(app) @app.route('/gateau', methods=['POST']) def data(): id = request.args.get('id') nom = request.args.get('nom') conn = mysql.connect() cursor = conn.cursor() cursor.execute('insert into gateau values('+id+',"'+nom+'")') data = cursor.fetchall() if len(data) is 0: return json.dumps({'message':'gateau created successfully !'}) else: return json.dumps({'error':str(data[0])}) conn.close() if __name__ == '__main__': app.run(debug=True)
Etape 4 : Envoie d’information en JSON depuis le serveur
- Permettre lors de l’appel de l’url clients d’afficher tous les clients. Le serveur NodeJS renverra un tableau en JSON.
Exemple de code client
$('#btn-valide').click(function(){ $.ajax({ type: "GET", contentType: 'application/json; charset=utf-8', url: "http://localhost/serveur/gateaux, success: function(data){ alert(data); } }); });
Exemple de code serveur
from flask import Flask from flask import request from flask import jsonify from flaskext.mysql import MySQL import json app = Flask(__name__) mysql = MySQL() app.config['MYSQL_DATABASE_USER'] = 'root' app.config['MYSQL_DATABASE_PASSWORD'] = '' app.config['MYSQL_DATABASE_DB'] = 'patisserie' app.config['MYSQL_DATABASE_HOST'] = 'localhost' mysql.init_app(app) @app.route('/gateaux') def data2(): conn = mysql.connect() cursor = conn.cursor() cursor.execute('select * from gateau') data = cursor.fetchall() if len(data) != 0: return jsonify(data) else: return json.dumps({'error':str(data[0])}) conn.close() if __name__ == '__main__': app.run(debug=True)