mission Flask

Créé en 2018 et modifié le 25 Aug 2020

Créé en 2018 et modifié le 25 Aug 2020

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,
[...]

API Gateau

Base de données

réaliser une base de données patisserie avec une table gateau. Cette table possédera comme champs un id et un nom.
insérer 10 sortes de gâteaux

API

Permettre à votre API de répondre aux routes suivantes grâce à SLIM dans un seul fichier index.php.

  1. gateau en POST pour insérer un gateau
  2. gateau/{id} en GET pour afficher un gateau
  3. gateaux en GET pour lister tous les gateaux
  4. gateau/{id} en DELETE pour supprimer un gateau
  5. gateau/{id} en PUT pour modifier un gateau

Réaliser le fichier htacess qui permet de regiriger les URI vers index.php
Implémenter les routes, dans un premier temps, elle répondront seulement “ok”
Ecrire une fonction qui se connecte à la base de données.
Relier chaque route à une fonction qui execute le service demandé.

Client

Réaliser une interface cliente uniquement en HTML, JQuery et Ajax pour utiliser les routes précédentes.
Afficher tous les boutons sur une seul page.
Appeler les routes grâce à JQuery qui lance une fonction Ajax au click du bouton. Les parametres seront transmis en dur dans l’URL dans un premier temps.
Permettre à l’utilisateur de saisir les informations du gateau pour la route 1, et l’id du gateau pour […]

Ship

On souhaite réaliser une application qui permette le déchargement des marchandises de navire rentrant du nouveau monde.

Partie 1

  • Réaliser la base de données
--
-- Base de données : `ship`
--

-- --------------------------------------------------------

--
-- Structure de la table `dechargement`
--

DROP TABLE IF EXISTS `dechargement`;
CREATE TABLE IF NOT EXISTS `dechargement` (
`id` int(11) NOT NULL,
`idNavire` int(11) NOT NULL,
`dateD` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Déchargement des données de la table `dechargement`
--

INSERT INTO `dechargement` (`id`, `idNavire`, `dateD`) VALUES
(1, 1, '1610-08-11');

-- --------------------------------------------------------

--
-- Structure de la table `lignedechargement`
--

DROP TABLE IF EXISTS `lignedechargement`;
CREATE TABLE IF NOT EXISTS `lignedechargement` (
`idDechargement` int(11) NOT NULL,
`idMarchandise` int(11) NOT NULL,
`quantite` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Déchargement des données de la table `lignedechargement`
--

INSERT INTO `lignedechargement` (`idDechargement`, `idMarchandise`, `quantite`) VALUES
(1, 1, 3);

-- --------------------------------------------------------

--
-- Structure de la table `marchandise`
--

DROP TABLE IF EXISTS `marchandise`;
CREATE TABLE IF NOT EXISTS `marchandise` (
`id` int(11) NOT NULL,
`nom` varchar(50) NOT NULL,
`poidsUnitaire` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Déchargement des données de la table `marchandise`
--

INSERT INTO `marchandise` (`id`, `nom`, `poidsUnitaire`) VALUES
(1, 'tabac', 2),
(2, 'indigo', 2),
(3, 'vanille', 2),
(4, [...]

Mission fish

Soit plusieurs fichiers dans différents répertoires de la forme :

rep1/
f1.jpg
f2.jpg
f3.jpg
..
wiwi.pdf
wawa.pdf

rep2/
f1.jpg
f2.jpg
f3.jpg
...
wiwi.pdf
wawa.pdf

rep3/
f1.jpg
f2.jpg
f3.jpg
..
wiwi.pdf
wawa.pdf

Chaque fichier est différent. On souhaite tout rassembler dans un seul répertoire avec comme préfix le nom du répertoire.
Exemple : repglobal/rep1-f1.jpg

  • Réaliser le programme dans le langage de votre choix, Python, PHP ou autre.
  • Améliorer le programme pour sélectionner uniquement les images.
  • Faire en sorte que les sous répertoire soient pris en compte (rep3/rep3a).

 

 

 

 

from pathlib import Path
import shutil
for p in  Path('.').glob('./**/*'):
   if p.is_file():
       word=str(p)
       word = word.replace("\\", "_")
       print(word)
       shutil.move(p,word)

 

Go to Top