archi api

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)