# sujet 1 : departement / employe
# sujet 2 : activite / localisation
# sujet 3 : joueur / club
# sujet 4 : voiture / categorie
# sujet 5 : plat / typePlat
# sujet 6 : film / genre
# sujet 7 : reparation / typeReparation
# sujet 8 : bandeDessinee / auteur
# sujet 9 : ordinateur / salle
# sujet 10 : commercants typeCommercant
# sujet 11 : depense / categorieDepense
# sujet 12 : spectacle / theatre
# sujet 13 : hotel / station
# sujet 14 : vetement / typeVetement
# sujet 15 : outil / typeOutil
# sujet 16 : monument / commune
# sujet 17 : tableau / typeEpoque
# sujet 18 : sport / typeSport
# sujet 19 : arbre / famillesArbre --
# sujet 20 : animal / typeAnimal --
# sujet 21 : meuble / typeMeuble
# sujet 22 : moto / marque
# sujet 23 : club / region
# sujet 24 : parking / ville
# sujet 25 : ski / typeSki
# sujet 26 : enseignant / matiere
# sujet 27 : foret / typeForet --
# ? jeuPlateau(id,nomJeu, marque, prix_jeu, nbMiniJoueurs, nbMaxiJoueurs, description, photo, typeJeu_id ) typeJeu(id,libelleTypeJeu)
# ? pneu(id,nom_pneu, fabricant, modele_pneu, largeur_pneu , diametre_jante, proprietes(vtt,ville,route), prix_pneu) / dimension(libelle: 26 28 29 (pouces) ) https://www.lecyclo.com/blogs/conseils/quelle-taille-pour-mes-pneus-velo
# salle(id,nom_salle, etage, nbMaxEtudiants, surface, nbPrisesCourant, nbPrisesReseau, batiment, type_salle_id) typeSalle (id, libelle(amphi, td, td_machine, tp, tp_reseau), type_cours(cours,td, tp) )
# carrelage
# parquet
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_departement | /departement/show |
GET | affiche les types d’employés | retourne la vue show_departement.html |
add_departement | /departement/add |
GET | affiche le formulaire pour ajouter un département | retourne la vue add_departement.html |
valid_add_departement | /departement/add |
POST | validation (soumission) du formulaire pour ajouter un département | redirection sur la route /departement/show |
delete_departement | /departement/delete |
GET | suppression d’un département | redirection sur la route /departement/show |
edit_departement | /departement/edit |
GET | affiche le formulaire pour modifier un département | retourne la vue edit_departement.html |
valid_edit_departement | /departement/edit |
POST | validation (soumission) du formulaire pour modifier un département | redirection sur la route /departement/show |
show_employe | /employe/show |
GET | affiche les employes | retourne la vue show_employe.html |
add_employe | /employe/add |
GET | affiche le formulaire pour ajouter un employe | retourne la vue add_employe.html |
valid_add_employe | /employe/add |
POST | validation (soumission) du formulaire pour ajouter un employe | redirection sur la route /employe/show |
delete_employe | /employe/delete |
GET | suppression d’un employe | redirection sur la route /employe/show |
edit_employe | /employe/edit |
GET | affiche le formulaire pour modifier un employe | retourne la vue edit_employe.html |
valid_edit_employe | /employe/edit |
POST | validation (soumission) du formulaire pour modifier un employe | redirection sur la route /employe/show |
filtre_employe | /employe/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_employe_filtre_show.html |
# ##########################################################Sujet 1
= [
departements 'id':1,'nomDepartement':'Production', 'logo': 'logo_production.png'},
{'id':2,'nomDepartement':'Marketing', 'logo': 'logo_marketing.png'},
{'id':3,'nomDepartement':'Méthode', 'logo': 'logo_methode.png'},
{'id':4,'nomDepartement':'Recherche et developpement', 'logo': 'logo_recherche_et_developpement.png'}
{
]
= [
employes 'id':1,'nomEmploye':'Gauthier', 'villeDept':'Belfort', 'dateEmbauche':'2011-09-06', 'indice':'395' , 'salaire':'2500', 'photo':'employe1.png', 'departement_id':2},
{'id':2,'nomEmploye':'Peslier', 'villeDept':'Valdoie', 'dateEmbauche':'2009-02-01', 'indice':'375' , 'salaire':'2800', 'photo':'employe2.png', 'departement_id':1},
{'id':3,'nomEmploye':'Rousselet', 'villeDept':'Savoyeux', 'dateEmbauche':'2010-05-15', 'indice':'295' , 'salaire':'2000', 'photo':'employe3.png', 'departement_id':3},
{'id':4,'nomEmploye':'Perez', 'villeDept':'Besançon', 'dateEmbauche':'2009-02-01', 'indice':'255' , 'salaire':'1500', 'photo':'employe4.png', 'departement_id':1},
{'id':5,'nomEmploye':'Benatti', 'villeDept':'Pont-de-Planches', 'dateEmbauche':'2011-09-06', 'indice':'285' , 'salaire':'1900', 'photo':'employe5.png', 'departement_id':3},
{'id':6,'nomEmploye':'Thiebaud', 'villeDept':'Frotey', 'dateEmbauche':'2011-09-06', 'indice':'295' , 'salaire':'2000', 'photo':'employe6.png', 'departement_id':1},
{'id':7,'nomEmploye':'Gauthier', 'villeDept':'Valdoie', 'dateEmbauche':'2007-04-02', 'indice':'285' , 'salaire':'1900', 'photo':'employe7.png', 'departement_id':3},
{'id':8,'nomEmploye':'Lambert' , 'villeDept':'Belfort', 'dateEmbauche':'2012-03-01', 'indice':'345' , 'salaire':'2200', 'photo':'employe8.png', 'departement_id':2},
{'id':9,'nomEmploye':'Dupond' , 'villeDept':'Besancon', 'dateEmbauche':'2011-02-04', 'indice':'275' , 'salaire':'1800', 'photo':'employe9.png', 'departement_id':1},
{'id':10,'nomEmploye':'Durand', 'villeDept':'Vesoul', 'dateEmbauche':'2011-02-04', 'indice':'205' , 'salaire':'1200', 'photo':'no_photo.jpg', 'departement_id':1},
{'id':11,'nomEmploye':'Lapierre', 'villeDept':'Valdoie', 'dateEmbauche':'2012-07-25', 'indice':'295' , 'salaire':'2000', 'photo':'employe10.png', 'departement_id':1},
{'id':12,'nomEmploye':'Philippe', 'villeDept':'Belfort', 'dateEmbauche':'2011-03-21', 'indice':'345' , 'salaire':'2200', 'photo':'employe11.png', 'departement_id':2}
{
]
archive des fichiers d’images de ce sujet
1 : departement / employe **
# sujet
INSERT INTO departement (id_departement, nomDepartement)
VALUES
NULL, 'Production','.png'),
(NULL, 'Marketing','logo_marketing.png'),
(NULL, 'Méthode','logo_methode.png'),
(NULL, 'Recherche et développement','logo_recherche_et_developpement.png');
(
INSERT INTO employe(id_employe,nom_employe,ville_dept,date_embauche,indice,salaire, photo, departement_id) VALUES
NULL,'Gauthier', 'Belfort', '2011-09-06', 395, 2500 ,'employe1.png', 2),
(NULL,'Peslier', 'Valdois', '2009-02-01', 375, 2800 ,'employe2.png', 1),
(NULL,'Rousselet', 'Savoyeux', '2010-05-15', 295, 2000 ,'employe3.png', 3),
(NULL,'Perez', 'Besançon', '2009-02-01', 255, 1500 ,'employe4.png', 1),
(NULL,'Benatti', 'Pont-de-Planches', '2011-09-06', 285, 1900 ,'employe5.png', 3),
(NULL,'Thiebaud', 'Frotey', '2011-09-06', 295, 2000 ,'employe6.png', 1),
(NULL,'Gauthier', 'Valdoie', '2007-04-02', 285, 1900 ,'employe7.png', 3),
(NULL,'Lambert', 'Belfort', '2012-03-01', 345, 2200 ,'employe8.png', 2),
(NULL,'Dupond', 'Besancon', '2011-02-04', 275, 1800 ,'employe9.png', 1),
(NULL,'Durand', 'Vesoul', '2011-02-04', 205, 1200 ,'no_photo.jpg', 1),
(NULL,'Lapierre', 'Valdoie', '2012-07-25', 295, 2000 ,'employe10.png', 1),
(NULL,'Philippe', 'Belfort', '2011-03-21', 345, 2200 ,'employe11.png', 2); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_localisation | /localisation/show |
GET | affiche les localisations | retourne la vue show_localisation.html |
add_localisation | /localisation/add |
GET | affiche le formulaire pour ajouter une localisation | retourne la vue add_localisation.html |
valid_add_localisation | /localisation/add |
POST | validation (soumission) du formulaire pour ajouter une localisation | redirection sur la route /localisation/show |
delete_localisation | /localisation/delete |
GET | suppression d’une localisation | redirection sur la route /localisation/show |
edit_localisation | /localisation/edit |
GET | affiche le formulaire pour modifier une localisation | retourne la vue edit_localisation.html |
valid_edit_localisation | /localisation/edit |
POST | validation (soumission) du formulaire pour modifier une localisation | redirection sur la route /localisation/show |
show_activite | /activite/show |
GET | affiche les activites | retourne la vue show_activite.html |
add_activite | /activite/add |
GET | affiche le formulaire pour ajouter une activite | retourne la vue add_activite.html |
valid_add_activite | /activite/add |
POST | validation (soumission) du formulaire pour ajouter une activite | redirection sur la route /activite/show |
delete_activite | /activite/delete |
GET | suppression d’une activite | redirection sur la route /activite/show |
edit_activite | /activite/edit |
GET | affiche le formulaire pour modifier une activite | retourne la vue edit_activite.html |
valid_edit_activite | /activite/edit |
POST | validation (soumission) du formulaire pour modifier une activite | redirection sur la route /activite/show |
filtre_activite | /activite/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_activite_filtre_show.html |
=[
localisations'id': 1, 'nomLieu': 'Gymnase IUT', 'nomAdresse': '11 Rue Rosa Bonheur, 90000 Belfort', 'lat': '47.64409600', 'lng': '6.83917600'},
{'id': 2, 'nomLieu': 'Gymnase du phare', 'nomAdresse': '2 Rue Paul Koepfler, 90000 Belfort', 'lat': '47.63908900', 'lng': '6.84955610'},
{'id': 3, 'nomLieu': 'Stade d athlétisme', 'nomAdresse': 'Rue Floréal, 90000 Belfort ', 'lat': '47.65531800', 'lng': '6.85577000'},
{'id': 4, 'nomLieu': 'Site du Malsaucy', 'nomAdresse': '7 Rue du Malsaucy, 90300 Sermamagny', 'lat': '47.68988100', 'lng': '6.83138900'},
{'id': 5, 'nomLieu': 'Piscine', 'nomAdresse': '1 Parc des Loisirs, 90800 Bavilliers', 'lat': '47.63223200', 'lng': '6.83256200'},
{'id': 6, 'nomLieu': 'Forge Musée Etueffont', 'nomAdresse': '2 Rue de Lamadeleine, 90170 Étueffont', 'lat': '47.72251210', 'lng': '6.92096180'}
{
]
=[
activites'id':1,'nomActivite':'pêche' , 'dateCreation':'2015-02-02' , 'coutInscription':'100.00' , 'typeActivite':'loisirs', 'nbParticipants':'65' , 'localisation_id': 2, 'image': 'peche.jpg'},
{'id':2,'nomActivite':'tir à l arc' , 'dateCreation':'2013-02-02', 'coutInscription':'135' , 'typeActivite':'sport', 'nbParticipants':'35' , 'localisation_id':4, 'image': 'tir-a-l-arc.jpg'},
{'id':3,'nomActivite':'handball' , 'dateCreation':'2013-02-02', 'coutInscription':'100.00' , 'typeActivite':'sport', 'nbParticipants':'36' , 'localisation_id':1, 'image': 'handball.jpg'},
{'id':4,'nomActivite':'Atelier musique' , 'dateCreation':'2000-02-02' , 'coutInscription':'200.00' , 'typeActivite':'loisirs', 'nbParticipants':'55' , 'localisation_id':3, 'image': 'musique.jpg'},
{'id':5,'nomActivite':'cuisine' , 'dateCreation':'2015-02-02','coutInscription':'250.00' , 'typeActivite':'loisirs' , 'nbParticipants':'15' , 'localisation_id':4, 'image': 'cuisine.jpg'},
{'id':6,'nomActivite':'Football' , 'dateCreation':'2015-02-02','coutInscription':'105.00' , 'typeActivite':'sport', 'nbParticipants':'105' , 'localisation_id':3, 'image': 'football.jpg'},
{'id':7,'nomActivite':'Musculation' , 'dateCreation':'2015-02-02' , 'coutInscription':'100.00' , 'typeActivite':'sport', 'nbParticipants':'35' , 'localisation_id':1, 'image': 'musculation.jpg'},
{'id':8,'nomActivite':'Natation' , 'dateCreation':'2014-10-25','coutInscription':'180' , 'typeActivite':'sport' , 'nbParticipants':'25' , 'localisation_id':5, 'image': 'natation.jpg'},
{'id':9,'nomActivite':'Tennis' , 'dateCreation':'2015-02-01' , 'coutInscription':'200' , 'typeActivite':'sport' , 'nbParticipants':'15' , 'localisation_id':1, 'image': 'tennis.jpg'},
{'id':10,'nomActivite':'Ping Pong' , 'dateCreation':'2000-10-20' , 'coutInscription':'130' , 'typeActivite':'sport', 'nbParticipants':'65' , 'localisation_id':1, 'image': 'ping-pong.jpg'},
{'id':11,'nomActivite':'Escalade' , 'dateCreation':'2014-11-15' , 'coutInscription':'100' , 'typeActivite':'sport' , 'nbParticipants':'35' , 'localisation_id':2, 'image': 'escalade.jpg'},
{'id':12,'nomActivite':'zumba' , 'dateCreation':'2014-10-15', 'coutInscription':'140' , 'typeActivite':'sport', 'nbParticipants':'36' , 'localisation_id':1, 'image': 'zumba.jpg'},
{'id':13,'nomActivite':'Basketball' , 'dateCreation':'2013-06-01', 'coutInscription':'120' , 'typeActivite':'sport' , 'nbParticipants':'25' , 'localisation_id':1, 'image': 'basketball.jpg'},
{'id':14,'nomActivite':'Volley' , 'dateCreation':'2013-05-08', 'coutInscription':'125' , 'typeActivite':'sport' , 'nbParticipants':'35' , 'localisation_id':1, 'image': 'volleyball.jpg'},
{'id':15,'nomActivite':'Forge' , 'dateCreation':'2021-09-20', 'coutInscription':'40' , 'typeActivite':'loisirs' , 'nbParticipants':'10' , 'localisation_id':6, 'image': 'forge.jpg'}
{ ]
archive des fichiers d’images de ce sujet
-- sujet 2 : activite / localisation
INSERT INTO localisation (id_localisation , nom_lieu,nom_adresse,lat,lng) VALUES
NULL, 'Gymnase IUT','11 Rue Rosa Bonheur, 90000 Belfort', 47.644096,6.839176 ),
( NULL, 'Gymnase du phare','2 Rue Paul Koepfler, 90000 Belfort',47.639089,6.8495561),
( NULL, 'Stade d athlétisme','Rue Floréal, 90000 Belfort ',47.655318,6.855770 ),
( NULL, 'Site du Malsaucy','7 Rue du Malsaucy, 90300 Sermamagny',47.689881,6.831389 ),
( NULL, 'Piscine','1 Parc des Loisirs, 90800 Bavilliers', 47.632232,6.832562),
( NULL, 'Forge Musée Etueffont', '2 Rue de Lamadeleine, 90170 Étueffont',47.7225121,6.9209618);
(
INSERT INTO activite (id_activite, nom_activite, date_creation, cout_inscription, type_activite, nb_participants, localisation_id) VALUES
NULL, 'pêche' , '2015-02-02' , 100.00 , 'loisirs', 65 , 2 , 'peche.jpg'),
( NULL, 'tir à l arc' , '2013-02-02', 135 , 'sport', 35 , 4 , 'tir-a-l-arc.jpg'),
( NULL, 'handball' , '2013-02-02', 100.00 , 'sport', 36 , 1 ,'handball.jpg'),
( NULL, 'Atelier musique' , '2000-02-02' , 200.00 , 'loisirs', 55 , 3 ,'musique.jpg'),
( NULL, 'cuisine' , '2015-02-02', 250.00 , 'loisirs' , 15 , 4 ,'cuisine.jpg'),
( NULL, 'Football' , '2015-02-02', 105.00 , 'sport', 105 , 3 ,'football.jpg'),
( NULL, 'Musculation' , '2015-02-02' , 100.00 , 'sport', 35 , 1 ,'musculation.jpg'),
( NULL, 'Natation' , '2014-10-25', 180 , 'sport' , 25 , 5 ,'natation.jpg'),
( NULL, 'Tennis' , '2015-02-01' , 200 , 'sport' , 15 , 1 , 'tennis.jpg'),
( NULL, 'Ping Pong' , '2000-10-20' , 130 , 'sport', 65 , 1 ,'ping-pong.jpg'),
( NULL, 'Escalade' , '2014-11-15' , 100, 'sport' , 35 , 2 ,'escalade.jpg'),
( NULL, 'zumba' , '2014-10-15', 140 , 'sport', 36 , 1,'zumba.jpg'),
( NULL, 'Basketball' , '2013-06-01', 120 , 'sport' , 25 , 1 ,'volleyball.jpg'),
( NULL, 'Volley' , '2013-05-08', 125 , 'sport' , 35 , 1 ,'volleyball.jpg'),
( NULL, 'Forge' , '2021-09-20', 40 , 'loisirs' , 5 , 6 ,'forge.jpg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_club | /club/show |
GET | affiche les types d’joueurs | retourne la vue show_club.html |
add_club | /club/add |
GET | affiche le formulaire pour ajouter un club | retourne la vue add_club.html |
valid_add_club | /club/add |
POST | validation (soumission) du formulaire pour ajouter un club | redirection sur la route /club/show |
delete_club | /club/delete |
GET | suppression d’un club | redirection sur la route /club/show |
edit_club | /club/edit |
GET | affiche le formulaire pour modifier un club | retourne la vue edit_club.html |
valid_edit_club | /club/edit |
POST | validation (soumission) du formulaire pour modifier un club | redirection sur la route /club/show |
show_joueur | /joueur/show |
GET | affiche les joueurs | retourne la vue show_joueur.html |
add_joueur | /joueur/add |
GET | affiche le formulaire pour ajouter un joueur | retourne la vue add_joueur.html |
valid_add_joueur | /joueur/add |
POST | validation (soumission) du formulaire pour ajouter un joueur | redirection sur la route /joueur/show |
delete_joueur | /joueur/delete |
GET | suppression d’un joueur | redirection sur la route /joueur/show |
edit_joueur | /joueur/edit |
GET | affiche le formulaire pour modifier un joueur | retourne la vue edit_joueur.html |
valid_edit_joueur | /joueur/edit |
POST | validation (soumission) du formulaire pour modifier un joueur | redirection sur la route /joueur/show |
filtre_joueur | /joueur/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_joueur_filtre_show.html |
# ########################################################### Sujet 3
=[
clubs'id':1,'nomClub':'Paris SG' , 'villeClub':'Paris', 'image':'psg.png'},
{'id':2,'nomClub':'Chelsea' , 'villeClub':'Londres', 'image':'Chelsea.png'},
{'id':3,'nomClub':'FC Barcelona' , 'villeClub':'Barcelone', 'image':'Barcelone.png'}
{
]
=[
joueurs'id':1,'nomJoueur':'Hazard' , 'prenomJoueur':'Eden' , 'dateNaissJoueur':'1991-01-07', 'tailleJoueur':'1.90' , 'club_id':2, 'image':'Eden_hazard.jpg'},
{'id':2,'nomJoueur':'Messi' , 'prenomJoueur':'Lionel' , 'dateNaissJoueur':'1987-06-24', 'tailleJoueur':'1.68' , 'club_id':3, 'image':'messi.jpeg'},
{'id':3,'nomJoueur':'Matuidi' , 'prenomJoueur':'Blaise' , 'dateNaissJoueur':'1987-04-09' , 'tailleJoueur':'1.90' , 'club_id':1, 'image':'matuidi.jpg'},
{'id':4,'nomJoueur':'Fabregas' , 'prenomJoueur':'Cesc' , 'dateNaissJoueur':'1987-05-04' , 'tailleJoueur':'1.80' , 'club_id':2, 'image':'fabregas.jpg'},
{'id':5,'nomJoueur':'Courtois' , 'prenomJoueur':'Thibaut' , 'dateNaissJoueur':'1992-05-11' , 'tailleJoueur':'1.90' , 'club_id':3, 'image':'Courtois.jpg'},
{'id':6,'nomJoueur':'Pique' , 'prenomJoueur':'Gerard' , 'dateNaissJoueur':'1987-02-02' , 'tailleJoueur':'1.750' , 'club_id':1, 'image':'pique.jpg'},
{'id':7,'nomJoueur':'Terry' , 'prenomJoueur':'John' , 'dateNaissJoueur':'1980-12-07' , 'tailleJoueur':'1.90' , 'club_id':2, 'image':'john.jpg'},
{'id':8,'nomJoueur':'Ibrahimovic' , 'prenomJoueur':'Zlatan' , 'dateNaissJoueur':'1981-10-03' , 'tailleJoueur':'1.80' , 'club_id':1, 'image':'Ibrahimovic.jpg'},
{'id':9,'nomJoueur':'Cahill' , 'prenomJoueur':'Gary' , 'dateNaissJoueur':'1985-12-19' , 'tailleJoueur':'1.90' , 'club_id':2, 'image':'Cahill.jpg'},
{'id':10,'nomJoueur':'Rakitic' , 'prenomJoueur':'Ivan' , 'dateNaissJoueur':'1988-04-10' , 'tailleJoueur':'1.70' , 'club_id':3, 'image':'Rakitic.jpg'},
{'id':11,'nomJoueur':'Digne' , 'prenomJoueur':'Lucas' , 'dateNaissJoueur':'1993-01-20' , 'tailleJoueur':'1.80' , 'club_id':1, 'image':'Digne.jpeg'},
{'id':12,'nomJoueur':'Suarez' , 'prenomJoueur':'Luis' , 'dateNaissJoueur':'1987-01-24' , 'tailleJoueur':'1.80' , 'club_id':3, 'image':'Suarez.png'}
{ ]
archive des fichiers d’images de ce sujet
-- sujet 3 : joueur / club **
INSERT INTO club(id_clubs, nom_club, ville_club,image) VALUES
NULL,'Paris SG' , 'Paris','psg.png'),
(NULL,'Chelsea' , 'Londres','Chelsea.png'),
(NULL,'FC Barcelona' ,'Barcelone','Barcelone.png');
(
INSERT INTO joueur(id_joueur, nom_joueur, prenom_joueur, date_naissance, taille_joueur, image, club_id) VALUES
NULL,'Hazard' , 'Eden' , '1991-01-07', '1.90' , 'Eden_hazard.jpg', 2),
(NULL,'Messi' , 'Lionel' , '1987-06-24', '1.68' , 'messi.jpeg', 3),
(NULL,'Matuidi' , 'Blaise' , '1987-04-09' ,'1.90' , 'matuidi.jpg', 1),
(NULL,'Fabregas' , 'Cesc' , '1987-05-04' , '1.80' , 'fabregas.jpg', 2),
(NULL,'Courtois' , 'Thibaut' , '1992-05-11' , '1.90' , 'Courtois.jpg' , 3),
(NULL,'Pique' , 'Gerard' , '1987-02-02' , '1.750' , 'pique.jpg' , 1),
(NULL,'Terry' , 'John' , '1980-12-07' , '1.90', 'john.jpg' , 2),
(NULL,'Ibrahimovic' ,'Zlatan' ,'1981-10-03' , '1.80' , 'Ibrahimovic.jpg', 1),
(NULL,'Cahill' , 'Gary' ,'1985-12-19' , '1.90' , 'Cahill.jpg', 2),
(NULL,'Rakitic' ,'Ivan' , '1988-04-10' , '1.70' , 'Rakitic.jpg', 3),
(null,'Digne' , 'Lucas' , '1993-01-20' , '1.80' , 'Digne.jpeg', 1),
(NULL,'Suarez' , 'Luis' , '1987-01-24' , '1.80' ,'Suarez.png' , 3); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_categorie | /categorie/show |
GET | affiche les categories | retourne la vue show_categorie.html |
add_categorie | /categorie/add |
GET | affiche le formulaire pour ajouter une categorie | retourne la vue add_categorie.html |
valid_add_categorie | /categorie/add |
POST | validation (soumission) du formulaire pour ajouter une categorie | redirection sur la route /categorie/show |
delete_categorie | /categorie/delete |
GET | suppression d’une categorie | redirection sur la route /categorie/show |
edit_categorie | /categorie/edit |
GET | affiche le formulaire pour modifier une categorie | retourne la vue edit_categorie.html |
valid_edit_categorie | /categorie/edit |
POST | validation (soumission) du formulaire pour modifier une categorie | redirection sur la route /categorie/show |
show_voiture | /voiture/show |
GET | affiche les voitures | retourne la vue show_voiture.html |
add_voiture | /voiture/add |
GET | affiche le formulaire pour ajouter une voiture | retourne la vue add_voiture.html |
valid_add_voiture | /voiture/add |
POST | validation (soumission) du formulaire pour ajouter une voiture | redirection sur la route /voiture/show |
delete_voiture | /voiture/delete |
GET | suppression d’une voiture | redirection sur la route /voiture/show |
edit_voiture | /voiture/edit |
GET | affiche le formulaire pour modifier une voiture | retourne la vue edit_voiture.html |
valid_edit_voiture | /voiture/edit |
POST | validation (soumission) du formulaire pour modifier une voiture | redirection sur la route /voiture/show |
filtre_voiture | /voiture/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_voiture_filtre_show.html |
# ########################################################### Sujet 4
=[
categories'id':1,'libelle':'berline'},
{'id':2,'libelle':'break'},
{'id':3,'libelle':'suv'},
{'id':4,'libelle':'monospace'},
{'id':5,'libelle':'utilitaire'},
{'id':6,'libelle':'citadine'},
{'id':7,'libelle':'autre'}
{
]
=[
voitures'id':1,'nomVoiture':'clio 3', 'dateLancement':'2010-1-1', 'prix':'5000', 'categorie_id':1, 'puissance':4, 'photo':'clio3.jpg'},
{'id':2,'nomVoiture':'BMW Serie 6 Gran Coupe' , 'dateLancement':'2012-01-09' , 'prix':'118400', 'categorie_id':1, 'puissance':34, 'photo':'bmws6.jpg'},
{'id':3,'nomVoiture':'Mercedes Classe S' , 'dateLancement':'2014-09-15' , 'prix':'181000', 'categorie_id':1 , 'puissance':50, 'photo':'mercedesclasseS.jpg'},
{'id':4,'nomVoiture': 'Audi RS6' , 'dateLancement':'2013-11-07' , 'prix':'120600', 'categorie_id':2, 'puissance':64, 'photo':'audiRS6.jpg'},
{'id':5,'nomVoiture': 'Porsche Panamera' , 'dateLancement':'2013-04-25' , 'prix':'123965' , 'categorie_id':2 , 'puissance':35, 'photo':'porschePanamera.jpg'},
{'id':6,'nomVoiture': 'Range Rover Evoque' , 'dateLancement':'2014-03-10' , 'prix':'50700' , 'categorie_id':3 , 'puissance':19, 'photo':'rrEvoque.jpg'},
{'id':7,'nomVoiture': 'Citroen C4 Picasso' , 'dateLancement':'2013-06-04' , 'prix':'31150' , 'categorie_id':4 , 'puissance':8, 'photo':'c4Picasso.jpg'},
{'id':8,'nomVoiture': 'Ford S-Max' , 'dateLancement':'2012-08-28' , 'prix':'38450' , 'categorie_id':4 , 'puissance':8, 'photo':'sMax.jpg'},
{'id':9,'nomVoiture': 'Fiat Ducato' , 'dateLancement':'2009-07-02' , 'prix':'24575' , 'categorie_id':5 , 'puissance':9, 'photo':'fiatDucato.jpg'},
{'id':10,'nomVoiture': 'Renault Kangoo' , 'dateLancement':'2008-05-31' , 'prix':'19750' , 'categorie_id':5 , 'puissance':7, 'photo':'kangoo.jpg'},
{'id':11,'nomVoiture': 'Opel Adam' , 'dateLancement':'2009-12-15' , 'prix':'18900' , 'categorie_id':6 , 'puissance':8, 'photo':'opelAdam.jpg'},
{'id':12,'nomVoiture': 'Citroen DS3' , 'dateLancement':'2010-02-17' , 'prix':'19490' , 'categorie_id':6 , 'puissance':9, 'photo':'DS3.jpg'},
{'id':13,'nomVoiture': 'Dodge RAM 1500 V8 HEMI' , 'dateLancement':'2015-03-26' , 'prix':'55800' , 'categorie_id':7 , 'puissance':30, 'photo':'DodgeRAM.jpg'}
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 4 : voiture / categorie **
INSERT INTO categorie (id_categorie , libelle_categorie) VALUES
NULL, 'berline'),
(NULL, 'break'),
(NULL, 'suv'),
(NULL, 'monospace'),
(NULL, 'utilitaire'),
(NULL, 'citadine'),
(NULL, 'autre');
(
INSERT INTO voiture (id_voiture,nom_voiture, date_lancement, prix_voiture, categorie_id, puissance, photo) VALUES
null,'clio 3','2010-1-1','5000',1,4,'clio3.jpg'),
(null, 'BMW Serie 6 Gran Coupe', '2012-01-09', '118400',1,34,'bmws6.jpg'),
(null, 'Mercedes Classe S', '2014-09-15', '181000',1, 50,'mercedesclasseS.jpg'),
(null,'Audi RS6', '2013-11-07', '120600',2,64,'audiRS6.jpg'),
(null,'Porsche Panamera', '2013-04-25', '123965', 2, 35,'porschePanamera.jpg'),
(null,'Range Rover Evoque', '2014-03-10', '50700', 3, 19,'rrEvoque.jpg'),
(null,'Citroen C4 Picasso', '2013-06-04', '31150', 4, 8,'c4Picasso.jpg'),
(null,'Ford S-Max', '2012-08-28', '38450', 4, 8,'sMax.jpg'),
(null,'Fiat Ducato', '2009-07-02', '24575', 5, 9,'fiatDucato.jpg'),
(null,'Renault Kangoo', '2008-05-31', '19750', 5, 7,'kangoo.jpg'),
(null,'Opel Adam', '2009-12-15', '18900', 6, 8,'opelAdam.jpg'),
(null,'Citroen DS3', '2010-02-17', '19490', 6, 9,'DS3.jpg'),
(null,'Dodge RAM 1500 V8 HEMI', '2015-03-26', '55800', 7, 30,'DodgeRAM.jpg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_plat | /type-plat/show |
GET | affiche les types de plats | retourne la vue show_type_plat.html |
add_type_plat | /type-plat/add |
GET | affiche le formulaire pour ajouter un type de plat | retourne la vue add_type_plat.html |
valid_add_type_plat | /type-plat/add |
POST | validation (soumission) du formulaire pour ajouter un type de plat | redirection sur la route /type-plat/show |
delete_type_plat | /type-plat/delete |
GET | suppression d’un type de plat | redirection sur la route /type-plat/show |
edit_type_plat | /type-plat/edit |
GET | affiche le formulaire pour modifier un type de plat | retourne la vue edit_type_plat.html |
valid_edit_type_plat | /type-plat/edit |
POST | validation (soumission) du formulaire pour modifier un type de plat | redirection sur la route /type-plat/show |
show_plat | /plat/show |
GET | affiche les plats | retourne la vue show_plat.html |
add_plat | /plat/add |
GET | affiche le formulaire pour ajouter un plat | retourne la vue add_plat.html |
valid_add_plat | /plat/add |
POST | validation (soumission) du formulaire pour ajouter un plat | redirection sur la route /plat/show |
delete_plat | /plat/delete |
GET | suppression d’un plat | redirection sur la route /plat/show |
edit_plat | /plat/edit |
GET | affiche le formulaire pour modifier un plat | retourne la vue edit_plat.html |
valid_edit_plat | /plat/edit |
POST | validation (soumission) du formulaire pour modifier un plat | redirection sur la route /plat/show |
filtre_plat | /plat/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_plat_filtre_show.html |
# ########################################################### Sujet 5
=[
typesPlats'id':1,'nomTypePlat':'entrée'},
{'id':2,'nomTypePlat':'plat principal'},
{'id':3,'nomTypePlat':'dessert'},
{'id':4,'nomTypePlat':'plat unique'}
{
]=[
plats'id':1,'nomPlat':'Choucroute' , 'prixPlat':12.5 , 'dureePreparation':'30' , 'dateCreation':'2014-10-10' , 'description':'petit plat léger alsacien' , 'typePlat_id':1, 'photo':'choucroute.jpg'},
{'id':2,'nomPlat':'Cassoulet' , 'prixPlat':15 , 'dureePreparation':'60' , 'dateCreation':'2014-10-12' , 'description':'plats du Sud Ouest' , 'typePlat_id':1, 'photo':'cassoulet.jpg'},
{'id':3,'nomPlat':'Baeckeoffe' , 'prixPlat':17 , 'dureePreparation':'60' , 'dateCreation':'2013-09-21' , 'description':'plat alsacien' , 'typePlat_id':4, 'photo':'baeckeoffe.jpg'},
{'id':4,'nomPlat':'Salade savoyarde' , 'prixPlat':9.50 , 'dureePreparation':'10' , 'dateCreation':'2014-05-06' , 'description':'Ideal après une randonnée' , 'typePlat_id':1, 'photo':'salade_savoyarde.jpg'},
{'id':5,'nomPlat':'Tartiflette' , 'prixPlat':13 , 'dureePreparation':'30' , 'dateCreation':'2014-04-08' , 'description':'plat savoyard' , 'typePlat_id':1, 'photo':'tartiflette.jpg'},
{'id':6,'nomPlat':'bûche glacée' , 'prixPlat':7 , 'dureePreparation':'70' , 'dateCreation':'2014-04-08' , 'description':'glace 3 saveurs' , 'typePlat_id':3, 'photo':'buche_glacee.jpg'}
{ ]
archive des fichiers d’images de ce sujet
-- sujet 5 : plat / type_Plat **
INSERT INTO type_plat (id_type_plat, nom_type_plat) VALUES
NULL, 'entrée'),
(NULL, 'plat principal'),
(NULL, 'dessert'),
(NULL, 'plat unique');
(
INSERT INTO plat (id_plat, nom_plat, prix_plat, duree_preparation, date_creation,description, type_plat_id, photo) VALUES
NULL,'Choucroute',12.50,30,'2014-10-10', 'petit plat léger alsacien', 2 , 'choucroute.jpg'),
(NULL,'Cassoulet',15,60,'2014-10-12', 'plat du sud ouest', 2, 'cassoulet.jpg'),
(NULL,'Baeckeoffe',17,60,'2013-09-21', 'plat alsacien', 4, 'baeckeoffe.jpg'),
(NULL,'Salade savoyarde',9.50,10,'2014-05-06', 'Idéal après une randonnée', 1, 'salade_savoyarde.jpg'),
(NULL,'Tartiflette',13,30,'2014-04-08', 'plat savoyard', 2, 'tartiflette.jpg'),
(NULL,'buche glacée',7,7,'2014-04-08', 'glace 3 saveurs', 3, 'buche_glacee.jpg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_genre | /genre/show |
GET | affiche les genres | retourne la vue show_genre.html |
add_genre | /genre/add |
GET | affiche le formulaire pour ajouter un genre | retourne la vue add_genre.html |
valid_add_genre | /genre/add |
POST | validation (soumission) du formulaire pour ajouter un genre | redirection sur la route /genre/show |
delete_genre | /genre/delete |
GET | suppression d’un genre | redirection sur la route /genre/show |
edit_genre | /genre/edit |
GET | affiche le formulaire pour modifier un genre | retourne la vue edit_genre.html |
valid_edit_genre | /genre/edit |
POST | validation (soumission) du formulaire pour modifier un genre | redirection sur la route /genre/show |
show_film | /film/show |
GET | affiche les films | retourne la vue show_film.html |
add_film | /film/add |
GET | affiche le formulaire pour ajouter un film | retourne la vue add_film.html |
valid_add_film | /film/add |
POST | validation (soumission) du formulaire pour ajouter un film | redirection sur la route /film/show |
delete_film | /film/delete |
GET | suppression d’un film | redirection sur la route /film/show |
edit_film | /film/edit |
GET | affiche le formulaire pour modifier un film | retourne la vue edit_film.html |
valid_edit_film | /film/edit |
POST | validation (soumission) du formulaire pour modifier un film | redirection sur la route /film/show |
filtre_film | /film/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_film_filtre_show.html |
# ########################################################## Sujet 6
=[
genres'id':1,'libelleGenre':'Comedie'},
{'id':2,'libelleGenre':'Science-Fiction'},
{'id':3,'libelleGenre':'Action'},
{'id':4,'libelleGenre':'Fantasy'},
{'id':5,'libelleGenre':'Animation'},
{'id':6,'libelleGenre':'Horreur'}
{
]
= [
films 'id': 1 , 'titreFilm' : 'Le diner de con' , 'dateSortie' : '1998-04-15' , 'nomRealisateur' : 'Francis Veber' , 'genre_id' : 1 , 'duree' : 90, 'affiche':'film_1.jpg' },
{'id':2,'titreFilm':'Intouchable' , 'dateSortie':'2012-03-28' , 'nomRealisateur':'Eric Toledano','genre_id':1 ,'duree':125, 'affiche':'film_2.jpg' },
{'id':3,'titreFilm':'Piège de cristal' , 'dateSortie':'1988-09-21' , 'nomRealisateur':'John McTiernan' , 'genre_id':3 ,'duree':90, 'affiche':'film_3.jpg'},
{'id':4,'titreFilm':'Indiana Jones' , 'dateSortie':'1989-10-18' , 'nomRealisateur':'Steven Spielberg' , 'genre_id':2 ,'duree':125, 'affiche':'film_4.jpg'},
{'id':5,'titreFilm':'Blade Runner' , 'dateSortie':'1982-09-15' , 'nomRealisateur':'Ridley Scott' , 'genre_id':2 ,'duree' :145, 'affiche':'film_5.jpg'},
{'id':6,'titreFilm':'Alien' , 'dateSortie':'1979-09-12' , 'nomRealisateur':'Ridley Scott' , 'genre_id':2 ,'duree' :125, 'affiche':'film_6.jpg'},
{'id':7,'titreFilm':'L Exorciste' , 'dateSortie':'2001-03-14' , 'nomRealisateur':'William Friedkin' , 'genre_id':6 ,'duree':90, 'affiche':'film_7.jpg'},
{'id':8,'titreFilm':'Psychose' , 'dateSortie':'1960-11-02' , 'nomRealisateur':'Alfred Hitchcock' , 'genre_id':6 ,'duree':125, 'affiche':'film_8.jpg'},
{'id':9,'titreFilm':'Toy Story' , 'dateSortie':'1996-03-27' , 'nomRealisateur':'John Lasseter' , 'genre_id':5 ,'duree' :90, 'affiche':'film_9.jpg'},
{'id':10,'titreFilm':'Shrek' , 'dateSortie':'2001-07-04' , 'nomRealisateur':'Andrew Adamson ' , 'genre_id':5 ,'duree' :90, 'affiche':'film_10.jpg'},
{'id':11,'titreFilm':'La Communauté de l anneau' , 'dateSortie':'2001-12-19' , 'nomRealisateur':'Peter Jackson' , 'genre_id':4 ,'duree' :150, 'affiche':'film_11.jpg'},
{'id':12,'titreFilm':'Les Deux Tours' , 'dateSortie':'2002-12-18' , 'nomRealisateur':'Peter Jackson' , 'genre_id':4 ,'duree' :152, 'affiche':'film_12.jpg'},
{'id':13,'titreFilm':'Le Retour du roi' , 'dateSortie':'2003-12-17' , 'nomRealisateur':'Peter Jackson' , 'genre_id':4 ,'duree' :149, 'affiche':'film_13.jpg'},
{'id':14,'titreFilm':'Inception' , 'dateSortie':'2010-07-08' , 'nomRealisateur':'Christopher Nolan' , 'genre_id':2 ,'duree' :90, 'affiche':'film_14.jpg'},
{'id':15,'titreFilm':'Warrior' , 'dateSortie':'2011-09-14' , 'nomRealisateur':'Gavin O Connor' , 'genre_id':3 ,'duree' :120, 'affiche':'film_15.jpg'},
{'id':16,'titreFilm':'Harry Potter à l école des sorciers' , 'dateSortie':'2001-12-05' , 'nomRealisateur':'Chris Columbus' , 'genre_id':4 ,'duree' :125, 'affiche':'film_16.jpg'},
{'id':17,'titreFilm':'Harry Potter et la Chambre des secrets' , 'dateSortie':'2002-12-04' , 'nomRealisateur':'Chris Columbus' , 'genre_id':4 ,'duree' :125, 'affiche':'film_17.jpg'},
{'id':18,'titreFilm':'Harry Potter et le Prisonnier d Azkaban' , 'dateSortie':'2004-06-02' , 'nomRealisateur':'Alfonso Cuarón' , 'genre_id':4 ,'duree' :125, 'affiche':'film_18.jpg'},
{'id':19,'titreFilm':'Harry Potter et la Coupe de feu' , 'dateSortie':'2005-11-30' , 'nomRealisateur': 'Mike Newell' , 'genre_id':4 ,'duree' : 125, 'affiche':'film_19.jpg'},
{'id':20,'titreFilm':'Harry Potter et l Ordre du phénix' , 'dateSortie':'2009-07-15' , 'nomRealisateur': 'David Yates' , 'genre_id':4 ,'duree' : 125, 'affiche':'film_19.jpg'}
{
]
archive des fichiers d’images de ce sujet
-- sujet 6 : film / genre **
INSERT INTO genre(id_genre,libelle_genre) VALUES
NULL,'Comedie'),
(NULL ,'Science-fiction'),
(NULL ,'Action'),
(NULL ,'Fantasy'),
(NULL ,'Animation'),
(NULL ,'Horreur');
(
INSERT INTO film(id_film,titre_film,date_sortie,nom_realisateur,genre_id, duree_film, affiche) VALUES
NULL ,'Le diner de con' , '1998-04-15' , 'Francis Veber' , 1 , 90,'film_1.jpg'),
(NULL ,'Intouchable' ,'2012-03-28','Eric Toledano',1 ,125,'film_2.jpg'),
(NULL ,'Piège de cristal' ,'1988-09-21' ,'John McTiernan' , 3 ,90,'film_3.jpg'),
(NULL ,'THE Indiana Jones' ,'1989-10-18' , 'Steven Spielberg' , 2 ,125,'film_4.jpg'),
(NULL ,'Blade Runner' , '1982-09-15' , 'Ridley Scott' , 2 , 145,'film_5.jpg'),
(NULL ,'Alien' , '1979-09-12' , 'Ridley Scott' , 2 , 125,'film_6.jpg'),
(NULL ,'L Exorciste' , '2001-03-14' , 'William Friedkin' , 6 , 90,'film_7.jpg'),
(NULL ,'Psychose' , '1960-11-02' , 'Alfred Hitchcock' , 6 ,125,'film_8.jpg'),
(NULL,'Toy Story' , '1996-03-27' , 'John Lasseter' , 5 ,90,'film_9.jpg'),
(NULL ,'Shrek' , '2001-07-04' , 'Andrew Adamson ' , 5 ,90,'film_10.jpg'),
(NULL ,'La Communauté de l anneau' , '2001-12-19' , 'Peter Jackson' , 4 ,150,'film_11.jpg'),
(NULL ,'Les Deux Tours' , '2002-12-18' , 'Peter Jackson' , 4 ,152,'film_12.jpg'),
(NULL ,'Le Retour du roi' , '2003-12-17' , 'Peter Jackson' , 4 ,149,'film_13.jpg'),
(NULL ,'Inception' , '2010-07-08' , 'Christopher Nolan' , 2 ,90,'film_14.jpg'),
(NULL ,'Warrior' , '2011-09-14' , 'Gavin O Connor' , 3 ,120,'film_15.jpg'),
(NULL,'Harry Potter à l école des sorciers' , '2001-12-05' , 'Chris Columbus' , 4 ,125,'film_16.jpg'),
(NULL ,'Harry Potter et la Chambre des secrets' , '2002-12-04' , 'Chris Columbus' , 4,125,'film_17.jpg'),
(NULL ,'Harry Potter et le Prisonnier d Azkaban' , '2004-06-02' , 'Alfonso Cuarón' , 4 ,125,'film_18.jpg'),
(NULL ,'Harry Potter et la Coupe de feu' , '2005-11-30' , 'Mike Newell' , 4 ,125,'film_19.jpg'),
(NULL ,'Harry Potter et l Ordre du phénix' , '2009-07-15' , 'David Yates' , 4 ,125,'film_20.jpg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_reparation | /type-reparation/show |
GET | affiche les types de reparations | retourne la vue show_type_reparation.html |
add_type_reparation | /type-reparation/add |
GET | affiche le formulaire pour ajouter un type de reparation | retourne la vue add_type_reparation.html |
valid_add_type_reparation | /type-reparation/add |
POST | validation (soumission) du formulaire pour ajouter un type de reparation | redirection sur la route /type-reparation/show |
delete_type_reparation | /type-reparation/delete |
GET | suppression d’un type de reparation | redirection sur la route /type-reparation/show |
edit_type_reparation | /type-reparation/edit |
GET | affiche le formulaire pour modifier un type de reparation | retourne la vue edit_type_reparation.html |
valid_edit_type_reparation | /type-reparation/edit |
POST | validation (soumission) du formulaire pour modifier un type de reparation | redirection sur la route /type-reparation/show |
show_reparation | /reparation/show |
GET | affiche les reparations | retourne la vue show_reparation.html |
add_reparation | /reparation/add |
GET | affiche le formulaire pour ajouter une reparation | retourne la vue add_reparation.html |
valid_add_reparation | /reparation/add |
POST | validation (soumission) du formulaire pour ajouter une reparation | redirection sur la route /reparation/show |
delete_reparation | /reparation/delete |
GET | suppression d’une reparation | redirection sur la route /reparation/show |
edit_reparation | /reparation/edit |
GET | affiche le formulaire pour modifier une reparation | retourne la vue edit_reparation.html |
valid_edit_reparation | /reparation/edit |
POST | validation (soumission) du formulaire pour modifier une reparation | redirection sur la route /reparation/show |
filtre_reparation | /reparation/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_reparation_filtre_show.html |
########################################################### Sujet 7
=[
typesReparations'id':1,'libelleType':'entretien'},
{'id':2,'libelleType':'carrosserie'},
{'id':3,'libelleType':'mecanique'},
{'id':4,'libelleType':'autre'}
{
]
=[
reparations'id':1,'libelleReparation':'Vidange' , 'immatVoiture':'RP-456-ZF' , 'prixReparation':'50' , 'dateReparation':'2014-10-15' , 'typeReparation_id':1, 'photo':'intervention_1.png'},
{'id':2,'libelleReparation':'Vidange' , 'immatVoiture':'HK-856-SN' , 'prixReparation':'89' , 'dateReparation':'2005-05-06' , 'typeReparation_id':1, 'photo':'intervention_1.png'},
{'id':3,'libelleReparation':'Vidange' , 'immatVoiture':'SD-479-EG' , 'prixReparation':'57' , 'dateReparation':'2007-08-08' , 'typeReparation_id':1, 'photo':'intervention_1.png'},
{'id':4,'libelleReparation':'Vidange' , 'immatVoiture':'KU-458-VX' , 'prixReparation':'68' , 'dateReparation':'2007-04-13' , 'typeReparation_id':1, 'photo':'intervention_1.png'},
{'id':5,'libelleReparation':'Remplac. pare brise' , 'immatVoiture':'LY-228-EY' , 'prixReparation':'250.00' , 'dateReparation':'2003-12-30' , 'typeReparation_id':2, 'photo':'intervention_2.png'},
{'id':6,'libelleReparation':'Remplac. pare brise' , 'immatVoiture':'DS-865-KT' , 'prixReparation':'175.65' , 'dateReparation':'2011-05-06' , 'typeReparation_id':2, 'photo':'intervention_2.png'},
{'id':7,'libelleReparation':'révision' , 'immatVoiture':'XG-554-DD' , 'prixReparation':'100' , 'dateReparation':'2010-03-01' , 'typeReparation_id':1, 'photo':'intervention_3.png'},
{'id':8,'libelleReparation':'révision' , 'immatVoiture':'JK-103-DG' , 'prixReparation':'90' , 'dateReparation':'2001-05-06' , 'typeReparation_id':1, 'photo':'intervention_3.png'},
{'id':9,'libelleReparation':'Changement pneus' , 'immatVoiture':'KU-458-VX' , 'prixReparation':'30.54' , 'dateReparation':'2007-04-13' , 'typeReparation_id':1, 'photo':'intervention_4.png'},
{'id':10,'libelleReparation':'Changement pneus' , 'immatVoiture':'LY-228-EY' , 'prixReparation':'224.21' , 'dateReparation':'2009-12-30' , 'typeReparation_id':1, 'photo':'intervention_4.png'},
{'id':11,'libelleReparation':'Changement pneus' , 'immatVoiture':'DS-865-KT' , 'prixReparation':'227.00' , 'dateReparation':'2011-05-06' , 'typeReparation_id':1, 'photo':'intervention_4.png'},
{'id':12,'libelleReparation':'Remplacement plaq. de frein' , 'immatVoiture':'XG-554-DD' , 'prixReparation':'150' , 'dateReparation':'2010-03-01' , 'typeReparation_id':1, 'photo':'intervention_5.png'},
{'id':13,'libelleReparation':'Tambour freins arr.' , 'immatVoiture':'CD-665-GZ' , 'prixReparation':'180' , 'dateReparation':'2012-05-06' , 'typeReparation_id':3, 'photo':'intervention_6.png'},
{'id':14,'libelleReparation':'Remplacement plaq. de frein' , 'immatVoiture':'KU-458-VX' , 'prixReparation':'100' , 'dateReparation':'2007-04-13' , 'typeReparation_id':1, 'photo':'intervention_5.png'},
{'id':15,'libelleReparation':'Changement des cardans' , 'immatVoiture':'LY-228-EY' , 'prixReparation':'1300' , 'dateReparation':'2009-12-30' , 'typeReparation_id':3, 'photo':'intervention_7.png'},
{'id':16,'libelleReparation':'Changement boite de vitesse' , 'immatVoiture':'DS-865-KT' , 'prixReparation':'1400' , 'dateReparation':'2011-05-06', 'typeReparation_id':3, 'photo':'intervention_8.png'} ,
{'id':17,'libelleReparation':'Remplac. courroie distribution' , 'immatVoiture':'XG-554-DD' , 'prixReparation':'440', 'dateReparation':'2010-03-01' , 'typeReparation_id':3, 'photo':'intervention_9.png'} ,
{'id':18,'libelleReparation':'Remplac. courroie distribution' , 'immatVoiture':'JK-103-DG' , 'prixReparation':'460' , 'dateReparation':'2001-05-06' , 'typeReparation_id':3, 'photo':'intervention_9.png'}
{ ]
archive des fichiers d’images de ce sujet
7 : reparation / type_reparation **
# sujet
INSERT INTO type_reparation(id_type, libelle_type) VALUES
NULL, 'entretien'),
(NULL, 'carrosserie'),
(NULL, 'mecanique'),
(NULL, 'autre');
(
INSERT INTO reparation(id_reparation,libelle_reparation,immat_voiture,prix_reparation,date_reparation,type_reparation_id,photo) VALUES
NULL,'Vidange','RP-456-ZF','50','2014-10-15',1,'intervention_1.png'),
(NULL,'Vidange','HK-856-SN','89','2005-05-06',1,'intervention_1.png'),
(NULL,'Vidange','SD-479-EG','57','2007-08-08',1,'intervention_1.png'),
(NULL,'Vidange','KU-458-VX','68','2007-04-13',1,'intervention_1.png'),
(NULL,'Remplac. pare brise','LY-228-EY','250.00','2003-12-30',2,'intervention_2.png'),
(NULL,'Remplac. pare brise','DS-865-KT','175.65','2011-05-06',2,'intervention_2.png'),
(NULL,'révision','XG-554-DD','100','2010-03-01',1,'intervention_3.png'),
(NULL,'révision','JK-103-DG','90','2001-05-06',1,'intervention_3.png'),
(NULL,'Changement pneus','KU-458-VX','30.54','2007-04-13',1,'intervention_4.png'),
(NULL,'Changement pneus','LY-228-EY','224.21','2009-12-30',1,'intervention_4.png'),
(NULL,'Changement pneus','DS-865-KT','227.00','2011-05-06',1,'intervention_4.png'),
(NULL,'Remplacement plaq. de frein','XG-554-DD','150','2010-03-01',1,'intervention_5.png'),
(NULL,'Tambour freins arr.','CD-665-GZ','180','2012-05-06',3,'intervention_6.png'),
(NULL,'Remplacement plaq. de frein','KU-458-VX','100','2007-04-13',1,'intervention_5.png'),
(NULL,'Changement des cardans','LY-228-EY','1300','2009-12-30',3,'intervention_6.png'),
(NULL,'Changement boite de vitesse','DS-865-KT','1400','2011-05-06',3,'intervention_7.png'),
(NULL,'Remplac. courroie distribution','XG-554-DD','440','2010-03-01',3,'intervention_8.png'),
(NULL,'Remplac. courroie distribution','JK-103-DG','460','2001-05-06',3,'intervention_9.png'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_auteur | /auteur/show |
GET | affiche les auteurs | retourne la vue show_auteur.html |
add_auteur | /auteur/add |
GET | affiche le formulaire pour ajouter un auteur | retourne la vue add_auteur.html |
valid_add_auteur | /auteur/add |
POST | validation (soumission) du formulaire pour ajouter un auteur | redirection sur la route /auteur/show |
delete_auteur | /auteur/delete |
GET | suppression d’un auteur | redirection sur la route /auteur/show |
edit_auteur | /auteur/edit |
GET | affiche le formulaire pour modifier un auteur | retourne la vue edit_auteur.html |
valid_edit_auteur | /auteur/edit |
POST | validation (soumission) du formulaire pour modifier un auteur | redirection sur la route /auteur/show |
show_bande_dessinee | /bande-dessinee/show |
GET | affiche les bandes-dessinees | retourne la vue show_bande_dessinee.html |
add_bande_dessinee | /bande-dessinee/add |
GET | affiche le formulaire pour ajouter une bande dessinee | retourne la vue add_bande_dessinee.html |
valid_add_bande_dessinee | /bande-dessinee/add |
POST | validation (soumission) du formulaire pour ajouter une bande dessinee | redirection sur la route /bande-dessinee/show |
delete_bande_dessinee | /bande-dessinee/delete |
GET | suppression d’une bande dessinee | redirection sur la route /bande-dessinee/show |
edit_bande_dessinee | /bande-dessinee/edit |
GET | affiche le formulaire pour modifier une bande dessinee | retourne la vue edit_bande_dessinee.html |
valid_edit_bande_dessinee | /bande-dessinee/edit |
POST | validation (soumission) du formulaire pour modifier une bande dessinee | redirection sur la route /bande-dessinee/show |
filtre_bande_dessinee | /bande-dessinee/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_bande_dessinee_filtre_show.html |
########################################################### Sujet 8
=[
auteurs'id':1,'nomAuteur':'Goscinny-Uderzo'},
{'id':2,'nomAuteur':'Roba-Rosy'},
{'id':3,'nomAuteur':'Herge'},
{'id':4,'nomAuteur':'Franquin - Delporte'}
{
]=[
bandesDessinees'id':1,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titre':'La serpe d or', 'tome':1, 'dateParution':'2005-10-09', 'prix':'7.5', 'image':'bd1.png'},
{'id':2,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titre':'Asterix et les Goths', 'tome':'2', 'dateParution': '2011-10-10', 'prix':'10', 'image':'bd2.png'},
{'id':3,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titre':'Asterix et les gladiateurs', 'tome':'3', 'dateParution': '2004-10-11', 'prix':'5', 'image':'bd3.png'},
{'id':4,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titre':'Tour de Gaule d astérix', 'tome':'4', 'dateParution': '2005-09-10', 'prix':'8.5', 'image':'bd20.png'},
{'id':5,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titre':'La zizanie', 'tome':'15', 'dateParution': '2014-09-10', 'prix':'15', 'image':'bd4.png'},
{'id':6,'serieBD':'Boule et Bill', 'auteur_id':2, 'titre':'60 gags de Boule et Bill', 'tome':1, 'dateParution':'2010-10-11', 'prix':'10', 'image':'bd5.png'},
{'id':7,'serieBD':'Boule et Bill', 'auteur_id':2, 'titre':'Papa maman, Boule et... moi', 'tome':'8', 'dateParution':'2005-10-11', 'prix':'10.5', 'image':'bd6.png'},
{'id':8,'serieBD':'Boule et Bill', 'auteur_id':2, 'titre':'Une vie de chien !', 'tome':'9', 'dateParution':'2012-10-11', 'prix':'20', 'image':'bd7.png'},
{'id':9,'serieBD':'Boule et Bill', 'auteur_id':2, 'titre':'Attention chien marrant !', 'tome':'10', 'dateParution':'2013-10-11', 'prix':'10', 'image':'bd8.png'},
{'id':10,'serieBD':'Boule et Bill', 'auteur_id':2, 'titre':'Jeux de Bill', 'tome':'11', 'dateParution':'2014-10-11', 'prix':'20', 'image':'bd9.png'},
{'id':11,'serieBD':'Tintin', 'auteur_id':3, 'titre':'Tintin au pays des Soviets', 'tome':'1', 'dateParution':'2005-10-11', 'prix':'10', 'image':'bd10.png'},
{'id':12,'serieBD':'Tintin', 'auteur_id':3, 'titre':'Tintin au Congo', 'tome':'2', 'dateParution':'2011-07-11', 'prix':'10', 'image':'bd11.png'},
{'id':13,'serieBD':'Tintin', 'auteur_id':3, 'titre':'Tintin en Amérique', 'tome':'3', 'dateParution':'2012-10-11', 'prix':'10', 'image':'bd12.png'},
{'id':14,'serieBD':'Tintin', 'auteur_id':3, 'titre':'Les Cigares du pharaon', 'tome':'4', 'dateParution':'2005-10-13', 'prix':'20', 'image':'bd13.png'},
{'id':15,'serieBD':'Tintin', 'auteur_id':3, 'titre':'Le lotus bleu', 'tome':'5', 'dateParution':'2014-10-13', 'prix':'20', 'image':'bd14.png'},
{'id':16,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titre':'Gare aux gaffes', 'tome':1, 'dateParution':'2010-12-03', 'prix':'10', 'image':'bd15.png'},
{'id':17,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titre':'Gala de gaffes', 'tome':'2', 'dateParution':'2012-09-06', 'prix':'10', 'image':'bd16.png'},
{'id':18,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titre':'Gaffes à gogo', 'tome':'3', 'dateParution':'2014-08-06', 'prix':'8', 'image':'bd17.png'},
{'id':19,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titre':'Gaffes en gros', 'tome':'4', 'dateParution':'2013-04-06', 'prix':'10', 'image':'bd18.png'},
{'id':20,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titre':'Les gaffes d un gars gonflé', 'tome':'5', 'dateParution':'2005-03-06', 'prix':'8', 'image':'bd19.png'}
{
]
archive des fichiers d’images de ce sujet
-- # sujet 8 : bande_dessinee / auteur **
INSERT INTO auteur (id_auteur, nom_auteur) VALUES
NULL,'Goscinny-Uderzo'),
(NULL,'Roba-Rosy'),
(NULL,'Herge'),
(NULL,'Franquin - Delporte');
(
INSERT INTO bande_dessinee (id_bande_dessinee,serie_bd, auteur_id, titre_bd, tome, date_parution, prix_bd, image) VALUES
NULL,'Astérix et Obélix',1,'La serpe d or',1,'2005-10-09','7.5', 'bd1.png'),
(NULL,'Astérix et Obélix',1,'Asterix et les Goths',2,'2011-10-10','10', 'bd2.png'),
(NULL,'Astérix et Obélix',1,'Asterix et les gladiateurs',3,'2004-10-11','5', 'bd3.png'),
(NULL,'Astérix et Obélix',1,'Tour de Gaule d astérix',4,'2005-09-10','5', 'bd20.png'),
(NULL,'Astérix et Obélix',1,'La zizanie',15,'2014-09-10','15', 'bd4.png'),
(NULL,'Boule et Bill',2,'60 gags de Boule et Bill',1,'2010-10-11','10', 'bd5.png'),
(NULL,'Boule et Bill',2,'Papa maman, Boule et... moi',8,'2005-10-11','10.5', 'bd6.png'),
(NULL,'Boule et Bill',2,'Une vie de chien !',9,'2012-10-11','20', 'bd7.png'),
(NULL,'Boule et Bill',2,'Attention chien marrant !',10,'2013-10-11','10', 'bd8.png'),
(NULL,'Boule et Bill',2,'Jeux de Bill',11,'2014-10-11','20', 'bd9.png'),
(NULL,'Tintin',3,'Tintin au pays des Soviets',1,'2005-10-11','10', 'bd10.png'),
(NULL,'Tintin',3,'Tintin au Congo',2,'2011-07-11','10', 'bd11.png' ),
(NULL,'Tintin',3,'Tintin en Amérique',3,'2012-10-11','10', 'bd12.png'),
(NULL,'Tintin',3,'Les Cigares du pharaon',4,'2005-10-13','20', 'bd13.png'),
(NULL,'Tintin',3,'Le lotus bleu',5,'2014-10-13','20', 'bd14.png'),
(NULL,'Gaston Lagaffe',4,'Gare aux gaffes',1,'2010-12-03','10', 'bd15.png'),
(NULL,'Gaston Lagaffe',4,'Gala de gaffes',2,'2012-09-06','10', 'bd16.png'),
(NULL,'Gaston Lagaffe',4,'Gaffes à gogo',3,'2014-08-06','8', 'bd17.png'),
(NULL,'Gaston Lagaffe',4,'Gaffes en gros',4,'2013-04-06','10', 'bd18.png'),
(NULL,'Gaston Lagaffe',4,'Les gaffes d un gars gonflé',5,'2005-03-06','8', 'bd19.png'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_salle | /salle/show |
GET | affiche les types d’ordinateurs | retourne la vue show_salle.html |
add_salle | /salle/add |
GET | affiche le formulaire pour ajouter une salle | retourne la vue add_salle.html |
valid_add_salle | /salle/add |
POST | validation (soumission) du formulaire pour ajouter une salle | redirection sur la route /salle/show |
delete_salle | /salle/delete |
GET | suppression d’une salle | redirection sur la route /salle/show |
edit_salle | /salle/edit |
GET | affiche le formulaire pour modifier une salle | retourne la vue edit_salle.html |
valid_edit_salle | /salle/edit |
POST | validation (soumission) du formulaire pour modifier une salle | redirection sur la route /salle/show |
show_ordinateur | /ordinateur/show |
GET | affiche les ordinateurs | retourne la vue show_ordinateur.html |
add_ordinateur | /ordinateur/add |
GET | affiche le formulaire pour ajouter un ordinateur | retourne la vue add_ordinateur.html |
valid_add_ordinateur | /ordinateur/add |
POST | validation (soumission) du formulaire pour ajouter un ordinateur | redirection sur la route /ordinateur/show |
delete_ordinateur | /ordinateur/delete |
GET | suppression d’un ordinateur | redirection sur la route /ordinateur/show |
edit_ordinateur | /ordinateur/edit |
GET | affiche le formulaire pour modifier un ordinateur | retourne la vue edit_ordinateur.html |
valid_edit_ordinateur | /ordinateur/edit |
POST | validation (soumission) du formulaire pour modifier un ordinateur | redirection sur la route /ordinateur/show |
filtre_ordinateur | /ordinateur/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_ordinateur_filtre_show.html |
########################################################### Sujet 9
=[
salles'id':1,'nomSalle':'Alpha'},
{'id':2,'nomSalle':'Mac'},
{'id':3,'nomSalle':'DEC'}
{
]
=[
ordinateurs'id':1,'marqueOrdinateur':'HP', 'nomMachine':'HP-1', 'ram':'32' , 'dateAchat':'2018-02-15','salle_id':1, 'prix':'1000', 'image':'hp.jpg'},
{'id':2,'marqueOrdinateur':'HP', 'nomMachine':'HP-2', 'ram':'32' , 'dateAchat':'2018-02-15','salle_id':1, 'prix':'1000', 'image':'hp.jpg'},
{'id':3,'marqueOrdinateur':'HP', 'nomMachine':'HP-3', 'ram':'32' , 'dateAchat':'2018-02-15','salle_id':1, 'prix':'1000', 'image':'hp.jpg'},
{'id':4,'marqueOrdinateur':'HP', 'nomMachine':'HP-4', 'ram':'32' , 'dateAchat':'2018-02-15','salle_id':1, 'prix':'1000', 'image':'hp.jpg'},
{'id':5,'marqueOrdinateur':'HP', 'nomMachine':'HP-5', 'ram':'32' , 'dateAchat':'2019-02-15','salle_id':1, 'prix':'1000', 'image':'hp.jpg'},
{'id':6,'marqueOrdinateur':'HP', 'nomMachine':'HP-6', 'ram':'32' , 'dateAchat':'2019-02-15','salle_id':1, 'prix':'1000', 'image':'hp.jpg'},
{'id':7,'marqueOrdinateur':'Apple', 'nomMachine':'iMac3', 'ram':'32' , 'dateAchat':'2020-10-16','salle_id':2, 'prix':'1500','image':'imac.jpg'},
{'id':8,'marqueOrdinateur':'Apple', 'nomMachine':'iMac1', 'ram':'32' , 'dateAchat':'2020-10-16','salle_id':2, 'prix':'1500','image':'imac.jpg'},
{'id':9,'marqueOrdinateur':'Apple', 'nomMachine':'iMac2', 'ram':'32' , 'dateAchat':'2020-10-16','salle_id':2, 'prix':'1500','image':'imac.jpg'},
{'id':10,'marqueOrdinateur':'Apple', 'nomMachine':'iMac4', 'ram':'32' , 'dateAchat':'2018-01-30','salle_id':2, 'prix':'1500','image':'imac.jpg'},
{'id':11,'marqueOrdinateur':'Apple', 'nomMachine':'MacPro2', 'ram':'64' , 'dateAchat':'2019-01-30','salle_id':2, 'prix':'1700','image':'macpro.jpg'},
{'id':12,'marqueOrdinateur':'Apple', 'nomMachine':'MacPro1', 'ram':'64' , 'dateAchat':'2019-01-30','salle_id':2, 'prix':'1700','image':'macpro.jpg'},
{'id':13,'marqueOrdinateur':'Apple', 'nomMachine':'iMac7', 'ram':'32' , 'dateAchat':'2018-01-30','salle_id':2, 'prix':'1500','image':'imac.jpg'},
{'id':14,'marqueOrdinateur':'Apple', 'nomMachine':'iMac8', 'ram':'16' , 'dateAchat':'2018-01-30','salle_id':2, 'prix':'1500','image':'imac.jpg'},
{'id':15,'marqueOrdinateur':'Dell', 'nomMachine':'Dell-1', 'ram':'32' , 'dateAchat':'2018-07-10','salle_id':3, 'prix':'1100','image':'dell.jpg'},
{'id':16,'marqueOrdinateur':'Dell', 'nomMachine':'Dell-2', 'ram':'32' , 'dateAchat':'2018-07-10','salle_id':3, 'prix':'1100','image':'dell.jpg'},
{'id':17,'marqueOrdinateur':'Dell', 'nomMachine':'Dell-3', 'ram':'32' , 'dateAchat':'2018-07-10','salle_id':3, 'prix':'1100','image':'dell.jpg'},
{'id':18,'marqueOrdinateur':'Dell', 'nomMachine':'Dell-4', 'ram':'32' , 'dateAchat':'2018-07-10','salle_id':3, 'prix':'1100','image':'dell.jpg'},
{'id':19,'marqueOrdinateur':'Asus', 'nomMachine':'Asus-6', 'ram':'16' , 'dateAchat':'2018-11-02','salle_id':3, 'prix':'1100','image':'asus.jpg'},
{'id':20,'marqueOrdinateur':'Asus', 'nomMachine':'Asus-7', 'ram':'16' , 'dateAchat':'2019-11-02','salle_id':3, 'prix':'900','image':'asus.jpg'},
{'id':21,'marqueOrdinateur':'Asus', 'nomMachine':'Asus-8', 'ram':'16' , 'dateAchat':'2019-11-02','salle_id':3, 'prix':'900','image':'asus.jpg'},
{'id':22,'marqueOrdinateur':'Asus', 'nomMachine':'Asus-9', 'ram':'16' , 'dateAchat':'2019-11-02','salle_id':3, 'prix':'900','image':'asus.jpg'},
{'id':23,'marqueOrdinateur':'MSI', 'nomMachine':'MSI-1', 'ram':'16' , 'dateAchat':'2018-02-18','salle_id':3, 'prix':'800','image':'msi.jpg'},
{'id':24,'marqueOrdinateur':'MSI', 'nomMachine':'MSI-2', 'ram':'16' , 'dateAchat':'2018-02-18','salle_id':3, 'prix':'800','image':'msi.jpg'},
{'id':25,'marqueOrdinateur':'MSI', 'nomMachine':'MSI-3', 'ram':'16' , 'dateAchat':'2018-02-18','salle_id':3, 'prix':'800','image':'msi.jpg'},
{'id':26,'marqueOrdinateur':'MSI', 'nomMachine':'MSI-4', 'ram':'16' , 'dateAchat':'2018-02-18','salle_id':3, 'prix':'800','image':'msi.jpg'}
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 9 : ordinateur / salle **
INSERT INTO salle (id_salle, nom_salle) VALUES
NULL, 'Alpha'),
(NULL, 'Mac'),
(NULL, 'DEC');
(
INSERT INTO ordinateur (id_ordinateur, marque_ordinateur, nom_machine, ram, date_achat, salle_id, prix, image) VALUES
NULL, 'HP', 'HP-1', 32, '2018-02-15', 1, 1000,'hp.jpg'),
(NULL, 'HP', 'HP-2', 32, '2018-02-15', 1, 1000,'hp.jpg'),
(NULL, 'HP', 'HP-3', 32, '2018-02-15', 1, 1000,'hp.jpg'),
(NULL, 'HP', 'HP-4', 32, '2018-02-15', 1, 1000,'hp.jpg'),
(NULL, 'HP', 'HP-5', 32, '2019-02-15', 1, 1000,'hp.jpg'),
(NULL, 'HP', 'HP-6', 32, '2019-02-15', 1, 1000,'hp.jpg'),
(NULL, 'Apple', 'iMac3', 32, '2020-10-16', 2, 1500,'imac.jpg'),
(NULL, 'Apple', 'iMac1', 32, '2020-10-16', 2, 1500,'imac.jpg'),
(NULL, 'Apple', 'iMac2', 32, '2020-10-16', 2, 1500,'imac.jpg'),
(NULL, 'Apple', 'iMac4', 32, '2018-01-30', 2, 1500,'imac.jpg'),
(NULL, 'Apple', 'MacPro2', 64, '2019-01-30', 2, 1700,'macpro.jpg'),
(NULL, 'Apple', 'MacPro1', 64, '2019-01-30', 2, 1700,'macpro.jpg'),
(NULL, 'Apple', 'iMac7', 32, '2018-01-30', 2, 1500,'imac.jpg'),
(NULL, 'Apple', 'iMac8', 16, '2018-01-30', 2, 1500,'imac.jpg'),
(NULL, 'Dell', 'Dell-1', 32, '2018-07-10', 3, 1100,'dell.jpg'),
(NULL, 'Dell', 'Dell-2', 32, '2018-07-10', 3, 1100,'dell.jpg'),
(NULL, 'Dell', 'Dell-3', 32, '2018-07-10', 3, 1100,'dell.jpg'),
(NULL, 'Dell', 'Dell-4', 32, '2018-07-10', 3, 1100,'dell.jpg'),
(NULL, 'Asus', 'Asus-6', 16, '2018-11-02', 3, 1100,'asus.jpg'),
(NULL, 'Asus', 'Asus-7', 16, '2019-11-02', 3, 900,'asus.jpg'),
(NULL, 'Asus', 'Asus-8', 16, '2019-11-02', 3, 900,'asus.jpg'),
(NULL, 'Asus', 'Asus-9', 16, '2019-11-02', 3, 900,'asus.jpg'),
(NULL, 'MSI', 'MSI-1', 16, '2018-02-18', 3, 800,'msi.jpg'),
(NULL, 'MSI', 'MSI-2', 16, '2018-02-18', 3, 800,'msi.jpg'),
(NULL, 'MSI', 'MSI-3', 16, '2018-02-18', 3, 800,'msi.jpg'),
(NULL, 'MSI', 'MSI-4', 16, '2018-02-18', 3, 800,'msi.jpg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_commercant | /type-commercant/show |
GET | affiche les types de commercants | retourne la vue show_type_commercant.html |
add_type_commercant | /type-commercant/add |
GET | affiche le formulaire pour ajouter un type de commercant | retourne la vue add_type_commercant.html |
valid_add_type_commercant | /type-commercant/add |
POST | validation (soumission) du formulaire pour ajouter un type de commercant | redirection sur la route /type-commercant/show |
delete_type_commercant | /type-commercant/delete |
GET | suppression d’un type de commercant | redirection sur la route /type-commercant/show |
edit_type_commercant | /type-commercant/edit |
GET | affiche le formulaire pour modifier un type de commercant | retourne la vue edit_type_commercant.html |
valid_edit_type_commercant | /type-commercant/edit |
POST | validation (soumission) du formulaire pour modifier un type de commercant | redirection sur la route /type-commercant/show |
show_commercant | /commercant/show |
GET | affiche les commercants | retourne la vue show_commercant.html |
add_commercant | /commercant/add |
GET | affiche le formulaire pour ajouter un commercant | retourne la vue add_commercant.html |
valid_add_commercant | /commercant/add |
POST | validation (soumission) du formulaire pour ajouter un commercant | redirection sur la route /commercant/show |
delete_commercant | /commercant/delete |
GET | suppression d’un commercant | redirection sur la route /commercant/show |
edit_commercant | /commercant/edit |
GET | affiche le formulaire pour modifier un commercant | retourne la vue edit_commercant.html |
valid_edit_commercant | /commercant/edit |
POST | validation (soumission) du formulaire pour modifier un commercant | redirection sur la route /commercant/show |
filtre_commercant | /commercant/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_commercant_filtre_show.html |
=[
type_commercants'id':1,'libelleType':'Boucherie'},
{'id':2,'libelleType':'Boulangerie'},
{'id':3,'libelleType':'Maraicher'},
{'id':4,'libelleType':'Fromagerie'}
{
]=[
commercants'id':1,'nomCommercant':'Boucherie Rousselet', 'dateInstallation':'2010-1-1','prixLocation':'500', 'adresse':'marché des vosges' ,'typeCommercant_id' :1,'image': 'boucherie_rousselet.jpg'},
{'id':2,'nomCommercant':'Boulanger Peslier', 'dateInstallation':'2009-1-1','prixLocation':'600', 'adresse':'marché des vosges' ,'typeCommercant_id' :2,'image': 'boulanger_peslier.jpg'},
{'id':3,'nomCommercant':'Patisserie Perez', 'dateInstallation':'2014-1-1','prixLocation':'600', 'adresse':'marché des vosges' ,'typeCommercant_id' :2,'image': 'patisserie_perez.jpg'},
{'id':4,'nomCommercant':'Maraicher Ravier', 'dateInstallation':'2014-1-1','prixLocation':'600', 'adresse':'marché des vosges' ,'typeCommercant_id' :3,'image': 'maraicher_ravier.jpg'},
{'id':5,'nomCommercant':'Bon Pain Woltz', 'dateInstallation':'2013-1-1','prixLocation':'700', 'adresse':'marché des vosges' ,'typeCommercant_id' :2,'image': 'bon_pain_woltz.jpg'},
{'id':6,'nomCommercant':'Caly Maraicher', 'dateInstallation':'2014-1-1','prixLocation':'600', 'adresse':'marché des vosges' ,'typeCommercant_id' :3,'image': 'caly_maraicher.jpg'},
{'id':7,'nomCommercant':'Boucherie Caly', 'dateInstallation':'2013-1-1','prixLocation':'600', 'adresse':'marché des vosges' ,'typeCommercant_id' :1,'image': 'boucherie_caly.jpg'},
{'id':8,'nomCommercant':'Fromagerie mervant', 'dateInstallation':'2013-1-1','prixLocation':'600', 'adresse':'marché des vosges' ,'typeCommercant_id' :4,'image': 'fromagerie_mervant.jpg'},
{'id':9,'nomCommercant':'Boulangerie Laure', 'dateInstallation':'2013-1-1','prixLocation':'800', 'adresse':'marché des vosges' ,'typeCommercant_id' :2,'image': 'boulangerie_laure.jpg'},
{'id':10,'nomCommercant':'Boucherie Laurent', 'dateInstallation':'2013-1-1','prixLocation':'800', 'adresse':'marché des vosges' ,'typeCommercant_id' :1,'image': 'boucherie_laurent.jpg'},
{'id':11,'nomCommercant':'Fromagerie dupuis', 'dateInstallation':'2014-1-1','prixLocation':'600', 'adresse':'marché des vosges' ,'typeCommercant_id' :4,'image': 'fromagerie_dupuis.jpg'}
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 10 : commercant type_commercant **
INSERT INTO type_commercant(id_type_com, libelle_type_com) VALUES
NULL,'Boucherie'),
(NULL,'Boulangerie'),
(NULL,'Maraicher'),
(NULL,'Fromagerie');
(
INSERT INTO commercant(id_com, nom_commercant, date_installation, prix_location, adresse_marche, type_com_id, image) VALUES
NULL,'Boucherie rousselet','2010-1-1','500.00','Marché des Vosges',1,'boucherie_rousselet.jpg'),
(NULL,'Boulanger Peslier','2009-1-1','600.00','Marché des Vosges',2,'boulanger_peslier.jpg'),
(NULL,'Patisserie Perez','2014-1-1','600.00','Marché des Vosges',2,'patisserie_perez.jpg'),
(NULL,'Maraîcher Ravier','2014-1-1','600.00','Marché des Vosges',3,'maraicher_ravier.jpg'),
(NULL,'Bon Pain Woltz','2013-1-1','700.00','Marché des Vosges',2, 'bon_pain_woltz.jpg'),
(NULL,'Caly Maraicher','2014-1-1','600.00','Marché des Vosges',3,'caly_maraicher.jpg'),
(NULL,'Boucherie Caly','2013-1-1','600.00','Marché des Vosges',1,'boucherie_caly.jpg'),
(NULL,'Fromagerie Mervant','2013-1-1','600.00','Marché des Vosges',4,'fromagerie_mervant.jpg'),
(NULL,'Boulangerie Laure','2013-1-1','800.00','Marché des Vosges',2,'boulangerie_laure.jpg'),
(NULL,'Boulangerie Laurent','2013-1-1','800.00','Marché des Vosges',1,'boucherie_laurent.jpg'),
(NULL,'Fromagerie Dupuis','2014-1-1','600.00','Marché des Vosges',4,'fromagerie_dupuis.jpg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_categorie_depense | /categorie-depense/show |
GET | affiche les les categories de dépenses | retourne la vue show_categorie_depense.html |
add_categorie_depense | /categorie-depense/add |
GET | affiche le formulaire pour ajouter une categorie de dépenses | retourne la vue add_categorie_depense.html |
valid_add_categorie_depense | /categorie-depense/add |
POST | validation (soumission) du formulaire pour ajouter une categorie de dépenses | redirection sur la route /categorie-depense/show |
delete_categorie_depense | /categorie-depense/delete |
GET | suppression d’une categorie de dépenses | redirection sur la route /categorie-depense/show |
edit_categorie_depense | /categorie-depense/edit |
GET | affiche le formulaire pour modifier une categorie de dépenses | retourne la vue edit_categorie_depense.html |
valid_edit_categorie_depense | /categorie-depense/edit |
POST | validation (soumission) du formulaire pour modifier une categorie de dépenses | redirection sur la route /categorie-depense/show |
show_depense | /depense/show |
GET | affiche les dépenses | retourne la vue show_depense.html |
add_depense | /depense/add |
GET | affiche le formulaire pour ajouter une dépense | retourne la vue add_depense.html |
valid_add_depense | /depense/add |
POST | validation (soumission) du formulaire pour ajouter une dépense | redirection sur la route /depense/show |
delete_depense | /depense/delete |
GET | suppression d’une dépense | redirection sur la route /depense/show |
edit_depense | /depense/edit |
GET | affiche le formulaire pour modifier une dépense | retourne la vue edit_depense.html |
valid_edit_depense | /depense/edit |
POST | validation (soumission) du formulaire pour modifier une dépense | redirection sur la route /depense/show |
filtre_depense | /depense/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_depense_filtre_show.html |
# ########################################################### Sujet 11
=[
categoriesDepenses'id':1,'libelleCategorie':'Autoroute'},
{'id':2,'libelleCategorie':'Carburant'},
{'id':3,'libelleCategorie':'Repas'},
{'id':4,'libelleCategorie':'Hebergement'}
{
]=[
depenses'id':1, 'destinataireDepense':'Service d\'autoroute Vinci','montant':'35','description':'Péages Belfort-Lyon', 'date_depense':'2014-04-20' , 'categorieDepense_id':1, 'image':'img_depense_1.png'},
{'id':2, 'destinataireDepense':'Organisation ACD','montant':'410.47','description':'Comité de direction', 'date_depense':'2014-07-03' , 'categorieDepense_id':3, 'image':'img_depense_2.png'},
{'id':3, 'destinataireDepense':'intendance UTBM','montant':'120','description':'forum étudiants', 'date_depense':'2014-08-18', 'categorieDepense_id':4, 'image':'img_depense_4.png'},
{'id':4, 'destinataireDepense':'Autoroute Ouest','montant':'25.5','description':'Péages Paris-Nantes', 'date_depense':'2014-07-28' , 'categorieDepense_id':1, 'image':'img_depense_3.png'},
{'id':5, 'destinataireDepense':'TotalEnergies','montant':'45','description':'Sans plomb 95 35L', 'date_depense':'2014-04-14' , 'categorieDepense_id':2, 'image':'img_depense_3.png', 'image':'img_depense_5.png'},
{'id':6, 'destinataireDepense':'Hilton Hotels & Resorts','montant':'842','description':'Hotel Hilton Paris', 'date_depense':'2014-01-06' , 'categorieDepense_id':4, 'image':'img_depense_6.png'},
{'id':7, 'destinataireDepense':'Service d\'autoroute Vinci','montant':'42.00','description':'Péages Belfort-Paris', 'date_depense':'2014-12-07' , 'categorieDepense_id':1, 'image':'img_depense_1.png'},
{'id':8, 'destinataireDepense':'TotalEnergies','montant':'75','description':'Diezel 60L', 'date_depense':'2014-10-31' , 'categorieDepense_id':2, 'image':'img_depense_3.png'}
{ ]
archive des fichiers d’images de ce sujet
11 : depense / categorie_depense
# sujet
INSERT INTO categorie_depense(id_categorie, libelle_categorie)VALUES
NULL,'Autoroute'),
(NULL,'Carburant'),
(NULL,'Repas'),
(NULL,'Hebergement');
(
INSERT INTO depense(id_depense, destinataire_depense, montant, description, date_depense,categorie_id, destinataire,image) VALUES
NULL,'Service d\'autoroute Vinci',35,'Péages Belfort-Lyon','2014-04-20',1,'Autoroute Paris/Rhone','img_depense_1.png'),
((NULL,'Organisation ACD',410.47,'Comité de direction','2014-07-03',3,'img_depense_2.png'),
(NULL,'intendance UTBM',120,'forum étudiants','2014-08-18',1,img_depense_4.png'),
NULL,'Autoroute Ouest',25.5,'Péages Paris-Nantes','2014-07-28',1,'img_depense_3.png'),
(NULL,'TotalEnergies',45,'Sans plomb 95 35L','2014-04-14',2,'img_depense_5.png'),
(NULL,'Hilton Hotels & Resorts' ,842,'Hotel mercure Paris','2014-01-06',4,'Hotel Hilton Paris,'img_depense_6.png'),
((NULL,'Service d\'autoroute Vinci' ,42.00,'Péages Belfort-Paris','2014-12-07',1,'img_depense_1.png'),
NULL,'TotalEnergies' ,75,'Diezel 60L','2014-10-31',2,'img_depense_3.png'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_theatre | /theatre/show |
GET | affiche les theatres | retourne la vue show_theatre.html |
add_theatre | /theatre/add |
GET | affiche le formulaire pour ajouter un theatre | retourne la vue add_theatre.html |
valid_add_theatre | /theatre/add |
POST | validation (soumission) du formulaire pour ajouter un theatre | redirection sur la route /theatre/show |
delete_theatre | /theatre/delete |
GET | suppression d’un theatre | redirection sur la route /theatre/show |
edit_theatre | /theatre/edit |
GET | affiche le formulaire pour modifier un theatre | retourne la vue edit_theatre.html |
valid_edit_theatre | /theatre/edit |
POST | validation (soumission) du formulaire pour modifier un theatre | redirection sur la route /theatre/show |
show_spectacle | /spectacle/show |
GET | affiche les spectacles | retourne la vue show_spectacle.html |
add_spectacle | /spectacle/add |
GET | affiche le formulaire pour ajouter un spectacle | retourne la vue add_spectacle.html |
valid_add_spectacle | /spectacle/add |
POST | validation (soumission) du formulaire pour ajouter un spectacle | redirection sur la route /spectacle/show |
delete_spectacle | /spectacle/delete |
GET | suppression d’un spectacle | redirection sur la route /spectacle/show |
edit_spectacle | /spectacle/edit |
GET | affiche le formulaire pour modifier un spectacle | retourne la vue edit_spectacle.html |
valid_edit_spectacle | /spectacle/edit |
POST | validation (soumission) du formulaire pour modifier un spectacle | redirection sur la route /spectacle/show |
filtre_spectacle | /spectacle/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_spectacle_filtre_show.html |
# ########################################################### Sujet 12
=[
theatres'id':1,'nomTheatre':'Le Granit', 'adresseTheatre':'1 faubourg de Montbéliard 90000 Belfort', 'telephoneTheatre':'0384586767'},
{'id':2,'nomTheatre':'Aktéon', 'adresseTheatre':'11 rue du Général-Blaise 70000 Paris', 'telephoneTheatre':'0143387462'},
{'id':3,'nomTheatre':'Théâtre National de Strasbourg', 'adresseTheatre':'1 Avenue de la Marseillaise 67005 Strasbourg', 'telephoneTheatre':'0388248800'},
{'id':4,'nomTheatre':'Les deux scènes', 'adresseTheatre':'49 Rue Megevand 25000 Besançon', 'telephoneTheatre':'0381878197'},
{
]
=[
spectacles'id' : 1,'titreSpectacle':'LE PRINCE (Tous les hommes sont méchants)', 'dateRepresentation':'2014-10-14', 'horaire':'de 20H à 21H30', 'prix':'9','theatre_id':'1', 'affiche':'spectacle_1.png' },
{'id' : 2,'titreSpectacle':'Le chemin du sepent', 'dateRepresentation':'2014-10-18', 'horaire':'de 20H à 21H30', 'prix':'8','theatre_id':'1', 'affiche':'spectacle_2.png' },
{'id' : 3,'titreSpectacle':'Le cabinet des curiosités', 'dateRepresentation':'2014-11-13', 'horaire':'de 20H à 21H30', 'prix':'12','theatre_id':'2', 'affiche':'spectacle_3.png' },
{'id' : 4,'titreSpectacle':'Trois actrice dont une', 'dateRepresentation':'2014-11-16', 'horaire':'de 20H à 21H30', 'prix':'10','theatre_id':'2', 'affiche':'spectacle_4.png' },
{'id' : 5,'titreSpectacle':'Ainsi se laissa t-il vivre', 'dateRepresentation':'2014-11-08', 'horaire':'de 20H à 21H30', 'prix':'13','theatre_id':'3', 'affiche':'spectacle_5.png' },
{'id' : 6,'titreSpectacle':'Lancelot du lac', 'dateRepresentation':'2014-12-02', 'horaire':'de 20H à 21H30', 'prix':'15','theatre_id':'3', 'affiche':'spectacle_6.png' },
{'id' : 7,'titreSpectacle':'Si oui, oui, sinon, non', 'dateRepresentation':'2014-11-04', 'horaire':'de 20H à 21H30', 'prix':'12','theatre_id':'3', 'affiche':'spectacle_7.png' },
{'id' : 8,'titreSpectacle':'Tiger tiger burning bright', 'dateRepresentation':'2014-10-16', 'horaire':'de 20H à 21H30', 'prix':'15','theatre_id':'4', 'affiche':'spectacle_8.png' }
{
]
archive des fichiers d’images de ce sujet
-- sujet 12 : spectacle / theatre **
INSERT INTO theatre (id_theatre, nom_theatre, adresse_theatre, telephone_theatre) VALUES
NULL,'Le Granit', '1 faubourg de Montbéliard 90000 Belfort', '0384586767'),
(NULL,'Aktéon', '11 rue du Général-Blaise 70000 Paris', '0143387462'),
(NULL,'Théâtre National de Strasbourg', '1 Avenue de la Marseillaise 67005 Strasbourg', '0388248800'),
(NULL,'Les deux scènes', '49 Rue Megevand 25000 Besançon', '0381878197');
(
INSERT INTO spectacle (id_spectacle, titre_spectacle, date_representation, horaire, prix, theatre_id, affiche) VALUES
NULL,'LE PRINCE (Tous les hommes sont méchants)', '2014-10-14', 'de 20H à 21H30', '9','1','spectacle_1.png' ),
(NULL,'Le chemin du serpent', '2014-10-18', 'de 20H à 21H30', '8','1','spectacle_2.png' ),
(NULL,'Le cabinet des curiosités', '2014-11-13', 'de 20H à 21H30', '12','2','spectacle_3.png' ),
(NULL,'Trois actrice dont une', '2014-11-16', 'de 20H à 21H30', '10','2','spectacle_4.png' ),
(NULL,'Ainsi se laissa t-il vivre', '2014-11-08', 'de 20H à 21H30', '13','3','spectacle_5.png' ),
(NULL,'Lancelot du lac', '2014-12-02', 'de 20H à 21H30', '15','3','spectacle_6.png' ),
(NULL,'Si oui, oui, sinon, non', '2014-11-04', 'de 20H à 21H30', '12','3','spectacle_7.png' ),
(NULL,'Tiger tiger burning bright', '2014-10-16', 'de 20H à 21H30', '15','4','spectacle_8.png' ); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_station | /station/show |
GET | affiche les stations | retourne la vue show_station.html |
add_station | /station/add |
GET | affiche le formulaire pour ajouter une station | retourne la vue add_station.html |
valid_add_station | /station/add |
POST | validation (soumission) du formulaire pour ajouter une station | redirection sur la route /station/show |
delete_station | /station/delete |
GET | suppression d’une station | redirection sur la route /station/show |
edit_station | /station/edit |
GET | affiche le formulaire pour modifier une station | retourne la vue edit_station.html |
valid_edit_station | /station/edit |
POST | validation (soumission) du formulaire pour modifier une station | redirection sur la route /station/show |
show_hotel | /hotel/show |
GET | affiche les hotels | retourne la vue show_hotel.html |
add_hotel | /hotel/add |
GET | affiche le formulaire pour ajouter les informations sur un hotel | retourne la vue add_hotel.html |
valid_add_hotel | /hotel/add |
POST | validation (soumission) du formulaire pour ajouter les informations sur un hotel | redirection sur la route /hotel/show |
delete_hotel | /hotel/delete |
GET | suppression d’un hotel | redirection sur la route /hotel/show |
edit_hotel | /hotel/edit |
GET | affiche le formulaire pour modifier les informations sur un hotel | retourne la vue edit_hotel.html |
valid_edit_hotel | /hotel/edit |
POST | validation (soumission) du formulaire pour modifier les informations sur un hotel | redirection sur la route /hotel/show |
filtre_hotel | /hotel/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_hotel_filtre_show.html |
# ########################################################### Sujet 13
=[
stations'id' : 1, 'nomStation':'OZAN', 'altitude' :'206'},
{ 'id' : 2, 'nomStation':'CORMORANCHE-SUR-SAONE', 'altitude' :'211'},
{ 'id' : 3, 'nomStation':'PLAGNE', 'altitude' :'922'},
{ 'id' : 4, 'nomStation':'TOSSIAT', 'altitude' :'501'},
{ 'id' : 5, 'nomStation':'POUILLAT', 'altitude' :'770'}
{
]
=[
hotels'id' : 1, 'nomHotel':'Le saint joseph ', 'nombreChambre' :'16' , 'categorie' :'2' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-02-03' , 'station_id' :1, 'photo':'le-saint-joseph.jpg'},
{'id' : 2, 'nomHotel':'La castana', 'nombreChambre' :'83' , 'categorie' :'3' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-28' , 'station_id' :2, 'photo':'la-castana.jpg'},
{'id' : 3, 'nomHotel':'Grand Baraille', 'nombreChambre' :'46' , 'categorie' :'3' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-05' , 'station_id' :3, 'photo':'grand-baraille.jpg'},
{'id' : 4, 'nomHotel':'Pershing hall', 'nombreChambre' :'26' , 'categorie' :'4' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-29' , 'station_id' :4, 'photo':'pershing-hall.jpg'},
{'id' : 5, 'nomHotel':'Villa Gallici', 'nombreChambre' :'470' , 'categorie' :'1' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-30' , 'station_id' :5, 'photo':'villa-gallici.jpg'},
{'id' : 6, 'nomHotel':'Mandarin oriental party', 'nombreChambre' :'14' , 'categorie' :'4' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-29' , 'station_id' :1, 'photo':'mandarin-oriental-party.jpg'},
{'id' : 7, 'nomHotel':'Roch hotel et spa', 'nombreChambre' :'71' , 'categorie' :'4' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-30' , 'station_id' :2, 'photo':'roch-hotel-et-spa.jpg'},
{'id' : 8, 'nomHotel':'Villa lara', 'nombreChambre' :'570' , 'categorie' :'1' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-23' , 'station_id' :3, 'photo':'villa-lara.jpg'},
{'id' : 9, 'nomHotel':'La reserve', 'nombreChambre' :'6' , 'categorie' :'5' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-24' , 'station_id' :4, 'photo':'la-reserve.jpg'},
{'id' : 10, 'nomHotel':'residence de france', 'nombreChambre' :'65' , 'categorie' :'5' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-29' , 'station_id' :1, 'photo':''},
{'id' : 11, 'nomHotel':'antibes les beau près' , 'nombreChambre' :'36' , 'categorie' :'4' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-21' , 'station_id' :2, 'photo':'residence-de-france.jpg'},
{'id' : 12, 'nomHotel':'le savoie', 'nombreChambre' :'585' , 'categorie' :'1' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-18' , 'station_id' :3, 'photo':'antibes-les-beau-près.jpg'},
{'id' : 13, 'nomHotel':'hotel juana', 'nombreChambre' :'68' , 'categorie' :'3' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-16' , 'station_id' :4, 'photo':'hotel-juana.jpg'},
{'id' : 14, 'nomHotel':'le sereno', 'nombreChambre' :'455' , 'categorie' :'3' , 'prixBaseChambre':'51.5', 'dateCreation' :'2017-04-14' , 'station_id' :5, 'photo':'le-sereno.jpg'},
{
]
archive des fichiers d’images de ce sujet
-- # sujet 13 : hotel / station **
INSERT INTO station(id_station, nom_station, altitude)
VALUES (NULL, 'OZAN', 206),
NULL, 'CORMORANCHE-SUR-SAONE', 211),
(NULL, 'PLAGNE', 922),
(NULL, 'TOSSIAT', 501),
(NULL, 'POUILLAT', 770);
(
INSERT INTO hotel (id_hotel, nom_hotel, nombre_chambre, categorie, prix_base_chambre, date_creation, photo, station_id)
VALUES (NULL, 'Le Saint joseph', 16, 2, 51.5,'2017-02-03', 'le-saint-joseph.jpg',1),
NULL, 'La Castana', 83, 3, 62,'2017-04-28', 'la-castana.jpg', 2),
(NULL, 'Grand Baraille', 46, 3, 78.5,'2017-04-05', 'grand-baraille.jpg', 3),
(NULL, 'Pershing Hall', 26, 4, 83,'2017-04-29', 'pershing-hall.jpg',4),
(NULL, 'Villa Gallici', 470, 1, 92.5,'2017-04-30', 'villa-gallici.jpg', 5),
(NULL, 'Mandarin oriental party', 14, 4, 102,'2017-04-29','mandarin-oriental-party.jpg', 1),
(NULL, 'Roch hotel et spa', 71, 4, 54, '2017-04-30', 'roch-hotel-et-spa.jpg', 2),
(NULL, 'Villa Lara', 570, 1, 63,'2017-04-23','villa-lara.jpg', 3),
(NULL, 'La Réserve', 6, 5, 114,'2017-04-24', 'la-reserve.jpg', 4),
(NULL, 'Résidence de France', 65, 5, 122, '2017-04-29', 'residence-de-france.jpg', 1),
(NULL, 'Antibes les beau près', 36, 4, 78, '2017-04-21', 'antibes-les-beau-près.jpg', 2),
(NULL, 'Le Savoie', 585, 1, 128,'2017-04-18', 'le-savoie.jpg',3),
(NULL, 'Hotel Juana', 68, 3, 145,'2017-04-16', 'hotel-juana.jpg', 4),
(NULL, 'Le Sereno', 455, 3, 200, '2017-04-14', 'le-sereno.jpg', 5); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_vetement | /type-vetement/show |
GET | affiche les types de vetements | retourne la vue show_type_vetement.html |
add_type_vetement | /type-vetement/add |
GET | affiche le formulaire pour ajouter un type de vetement | retourne la vue add_type_vetement.html |
valid_add_type_vetement | /type-vetement/add |
POST | validation (soumission) du formulaire pour ajouter un type de vetement | redirection sur la route /type-vetement/show |
delete_type_vetement | /type-vetement/delete |
GET | suppression d’un type de vetement | redirection sur la route /type-vetement/show |
edit_type_vetement | /type-vetement/edit |
GET | affiche le formulaire pour modifier un type de vetement | retourne la vue edit_type_vetement.html |
valid_edit_type_vetement | /type-vetement/edit |
POST | validation (soumission) du formulaire pour modifier un type de vetement | redirection sur la route /type-vetement/show |
show_vetement | /vetement/show |
GET | affiche les vetements | retourne la vue show_vetement.html |
add_vetement | /vetement/add |
GET | affiche le formulaire pour ajouter un vetement | retourne la vue add_vetement.html |
valid_add_vetement | /vetement/add |
POST | validation (soumission) du formulaire pour ajouter un vetement | redirection sur la route /vetement/show |
delete_vetement | /vetement/delete |
GET | suppression d’un vetement | redirection sur la route /vetement/show |
edit_vetement | /vetement/edit |
GET | affiche le formulaire pour modifier un vetement | retourne la vue edit_vetement.html |
valid_edit_vetement | /vetement/edit |
POST | validation (soumission) du formulaire pour modifier un vetement | redirection sur la route /vetement/show |
filtre_vetement | /vetement/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_vetement_filtre_show.html |
########################################################### Sujet 14
=[
typeVetements'id' : 1 ,'libelle': 'Pantalon'},
{'id' : 2 ,'libelle':'Short'},
{'id' : 3 ,'libelle':'Chemise'},
{'id' : 4 ,'libelle':'Veste'},
{'id' : 5 ,'libelle':'Tee-Shirt'},
{'id' : 6 ,'libelle':'Chaussette'},
{'id' : 7 ,'libelle':'Sous-vetements'}
{
]
=[
vetements'id' : 1 ,'nomVetement':'Jeans noir Lee' , 'prixDeBase':'55' , 'taille':'40' , 'dateAchat':'2017-01-15','typeVetement_id': 1, 'photo':'vetement_1.png'},
{'id' : 2 ,'nomVetement':'Pantalon velour bleu NafNaf' , 'prixDeBase':'65' , 'taille':'38' , 'dateAchat':'2017-01-15','typeVetement_id': 1, 'photo':'vetement_2.png'},
{'id' : 3 ,'nomVetement':'Bermuda Rouge Puma' , 'prixDeBase':'35' , 'taille':'38' , 'dateAchat':'2017-01-15','typeVetement_id':2, 'photo':'vetement_3.png'},
{'id' : 4 ,'nomVetement':'Veste Cuir Noir' , 'prixDeBase':'235' , 'taille':'38' , 'dateAchat':'2017-01-15','typeVetement_id':4, 'photo':'vetement_4.png'},
{'id' : 5 ,'nomVetement':'Chaussette Montagne Salomon ' , 'prixDeBase':'15.5' , 'taille':'40' , 'dateAchat':'2017-01-15','typeVetement_id':6, 'photo':'vetement_5.png'},
{'id' : 6 ,'nomVetement':'Slip arena' , 'prixDeBase':'15' , 'taille':'40' , 'dateAchat':'2017-01-15','typeVetement_id':7, 'photo':'vetement_6.png'},
{
'id' : 7 ,'nomVetement':'Chemise à Carreaux','prixDeBase':'50' , 'taille':'42' , 'dateAchat':'2017-01-15','typeVetement_id':3, 'photo':'vetement_1_1.png'},
{'id' : 8 ,'nomVetement':'Bermuda blanc','prixDeBase':'80' , 'taille':'40' , 'dateAchat':'2017-01-15','typeVetement_id':2, 'photo':'vetement_1-2.png'},
{'id' : 9 ,'nomVetement':'Tee-Shirt Nike','prixDeBase':'20' , 'taille':'36' , 'dateAchat':'2017-01-15','typeVetement_id':5, 'photo':'vetement_1_3.png'},
{'id' : 10 ,'nomVetement':'Costard','prixDeBase':'155' , 'taille':'40' , 'dateAchat':'2017-01-15','typeVetement_id':6, 'photo':'vetement_1_4.png'},
{'id' : 11 ,'nomVetement':'Chaussures de plage','prixDeBase':'11' , 'taille':'44' , 'dateAchat':'2017-01-15','typeVetement_id':7, 'photo':'vetement_1_5.png'},
{
]
archive des fichiers d’images de ce sujet
-- sujet 14 : vetement / type_vetement **
INSERT INTO type_vetement (id_type_vetement, libelle_type) VALUES
NULL,'Pantalon'),
(NULL,'Short'),
(NULL,'Chemise'),
(NULL,'Veste'),
(NULL,'Tee-Shirt'),
(NULL,'Chaussette'),
(NULL,'Sous-vetements');
(
INSERT INTO vetement (id_vetement,nom_vetement, prix_de_base, taille, date_achat, type_vetement_id, photo) VALUES
NULL,'Jeans noir Lee',55.0,40,'2017-01-15',1,'vetement_1.png'),
(NULL,'Pantalon velour bleu NafNaf',65.0,38,'2017-01-15',1,'vetement_2.png'),
(NULL,'Bermuda Rouge Puma',35.0,38,'2017-01-15',2,'vetement_3.png'),
(NULL,'Veste Cuir Noir',235.0,38,'2017-01-15',4,'vetement_4.png'),
(NULL,'Chaussette Montagne Salomon ',15.5,40,'2017-01-15',6,'vetement_5.png'),
(NULL,'Slip arena',15.0,40,'2017-01-15',7,'vetement_6.png');
(
INSERT INTO vetement (id_vetement,nom_vetement, prix_de_base, taille, date_achat, type_vetement_id, photo) VALUES
NULL,'Chemise à Carreaux',50,42,'2017-01-15',3,'vetement_1_1.png'),
(NULL,'Bermuda blanc',80,40,'2017-01-15',2,'vetement_1_2.png'),
(NULL,'Tee-Shirt Nike',20,36,'2017-01-15',5,'vetement_1_3.png'),
(NULL,'Costard',155,40,'2017-01-15',6,'vetement_1_4.png'),
(NULL,'Chaussures de plage',11,44,'2017-01-15',7,'vetement_1_5.png'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_outil | /type-outil/show |
GET | affiche les types d’outils | retourne la vue show_type_outil.html |
add_type_outil | /type-outil/add |
GET | affiche le formulaire pour ajouter un type d’outil | retourne la vue add_type_outil.html |
valid_add_type_outil | /type-outil/add |
POST | validation (soumission) du formulaire pour ajouter un type d’outil | redirection sur la route /type-outil/show |
delete_type_outil | /type-outil/delete |
GET | suppression d’un type d’outil | redirection sur la route /type-outil/show |
edit_type_outil | /type-outil/edit |
GET | affiche le formulaire pour modifier un type d’outil | retourne la vue edit_type_outil.html |
valid_edit_type_outil | /type-outil/edit |
POST | validation (soumission) du formulaire pour modifier un type d’outil | redirection sur la route /type-outil/show |
show_outil | /outil/show |
GET | affiche les outils | retourne la vue show_outil.html |
add_outil | /outil/add |
GET | affiche le formulaire pour ajouter un outil | retourne la vue add_outil.html |
valid_add_outil | /outil/add |
POST | validation (soumission) du formulaire pour ajouter un outil | redirection sur la route /outil/show |
delete_outil | /outil/delete |
GET | suppression d’un outil | redirection sur la route /outil/show |
edit_outil | /outil/edit |
GET | affiche le formulaire pour modifier un outil | retourne la vue edit_outil.html |
valid_edit_outil | /outil/edit |
POST | validation (soumission) du formulaire pour modifier un outil | redirection sur la route /outil/show |
filtre_outil | /outil/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_outil_filtre_show.html |
# ajouter stock
########################################################### Sujet 15
=[
typesOutils'id' : 1 ,'libelle':'mecanique'},
{'id' : 2 ,'libelle':'jardin'},
{'id' : 3 ,'libelle':'plomberie'}
{
]
=[
outils'id': 1 ,'nomOutil':'tournevis' , 'poids': 200 , 'dateAchat':'2019-09-09' , 'electrique': '0' ,'typeOutil_id':1, 'prix' : 10.5, 'image':'tournevis.png' },
{'id': 2 ,'nomOutil':'perceuse' , 'poids': 1500 , 'dateAchat':'2019-08-09' , 'electrique': '1' ,'typeOutil_id':1, 'prix' : 65.5, 'image':'perceuse.png' },
{'id': 3 ,'nomOutil':'tondeuse' , 'poids': 15000 , 'dateAchat':'2019-07-09' , 'electrique': '1' ,'typeOutil_id':2, 'prix' : 675, 'image':'tondeuse.png' },
{'id': 4 ,'nomOutil':'débroussailleuse' , 'poids': 5000 , 'dateAchat':'2019-09-09' , 'electrique': '1' ,'typeOutil_id':2, 'prix' : 205, 'image':'débroussailleuse.png' },
{'id': 5 ,'nomOutil':'tuyau' , 'poids': 250 , 'dateAchat':'2019-09-09' , 'electrique': '0' ,'typeOutil_id':2, 'prix' : 20.5, 'image':'tuyau.png' },
{'id': 6 ,'nomOutil':'chalumeau' , 'poid': 1500 , 'dateAchat':'2019-08-09' , 'electrique': '0' , 'typeOutil_id':2, 'prix' : 150.5, 'image':'chalumeau.png' },
{
]
archive des fichiers d’images de ce sujet
-- # sujet 15 : outils / type_outils **
INSERT INTO type_outils (id_type_outil)
VALUES (1, 'mécanique'),
2, 'jardin'),
(3, 'plomberie');
(
INSERT INTO outil (id_outil, nom_outil, poids, date_achat, electrique, type_outil_id , prix, image)
VALUES (NULL,'tournevis', 200, '2019-09-09', 0, 1, 10.50, 'tournevis.png'),
NULL,'perceuse', 1500, '2019-08-09', 1, 1, 65.50, 'perceuse.png'),
(NULL,'tondeuse', 15000, '2019-07-09', 1, 2, 675.00, 'tondeuse.png'),
(NULL,'débroussailleuse', 5000, '2019-09-09', 1, 2, 205.00, 'débroussailleuse.png'),
(NULL,'tuyau', 250, '2019-09-09', 0, 2, 20.50, 'tuyau.png'),
(NULL,'chalumeau', 1500, '2019-08-09', 0, 2, 150.50, 'chalumeau.png'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_departement | /departement/show |
GET | affiche les departements | retourne la vue show_departement.html |
add_departement | /departement/add |
GET | affiche le formulaire pour ajouter un departement | retourne la vue add_departement.html |
valid_add_departement | /departement/add |
POST | validation (soumission) du formulaire pour ajouter un departement | redirection sur la route /departement/show |
delete_departement | /departement/delete |
GET | suppression d’un departement | redirection sur la route /departement/show |
edit_departement | /departement/edit |
GET | affiche le formulaire pour modifier un departement | retourne la vue edit_departement.html |
valid_edit_departement | /departement/edit |
POST | validation (soumission) du formulaire pour modifier un departement | redirection sur la route /departement/show |
show_monument | /monument/show |
GET | affiche les monuments | retourne la vue show_monument.html |
add_monument | /monument/add |
GET | affiche le formulaire pour ajouter un monument | retourne la vue add_monument.html |
valid_add_monument | /monument/add |
POST | validation (soumission) du formulaire pour ajouter un monument | redirection sur la route /monument/show |
delete_monument | /monument/delete |
GET | suppression d’un monument | redirection sur la route /monument/show |
edit_monument | /monument/edit |
GET | affiche le formulaire pour modifier un monument | retourne la vue edit_monument.html |
valid_edit_monument | /monument/edit |
POST | validation (soumission) du formulaire pour modifier un monument | redirection sur la route /monument/show |
filtre_monument | /monument/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_monument_filtre_show.html |
########################################################### Sujet 16
=[
departements'id' : 1 ,'nomDepartement':'Bouche du Rhône'},
{'id' : 2 ,'nomDepartement':'Gard'},
{'id' : 3 ,'nomDepartement':'Vaucluse'}
{
]
=[
monuments'id' : 1 ,'nomMonument':'Château d If' , 'description': 'description Château d If' , 'dateCreation':'1529-01-01' , 'noteMichelin': 4 ,'departement_id':1, 'prix' : 10.5, 'photo':'chateauDIf.jpg' },
{'id' : 2 ,'nomMonument':'Basilique Notre-Dame de la Garde' , 'description': 'description Basilique Notre-Dame de la Garde' , 'dateCreation':'1700-08-09' , 'noteMichelin': '3' ,'departement_id':1, 'prix' : 0, 'photo':'basiliqueNotreDameDeLaGarde.jpg' },
{'id' : 3 ,'nomMonument':'Pont du Gard' , 'description': 'description Pont du Gard' , 'dateCreation':'0500-1-1' , 'noteMichelin': '5' ,'departement_id':2, 'prix' : 15 , 'photo':'pontDuGard.jpg'},
{'id' : 4 ,'nomMonument':'La Maison Carrée' , 'description': 'description La Maison Carrée' , 'dateCreation':'0500-01-01' , 'noteMichelin': 4 ,'departement_id':2, 'prix' : 10.5 , 'photo':'laMaisonCarree.jpg'},
{'id' : 5 ,'nomMonument':'Palais des Papes' , 'description Palais des Papes': 'description' , 'dateCreation':'1500-09-09' , 'noteMichelin': '5' ,'departement_id':1, 'prix' : 6 , 'photo':'palaisDesPapes.jpg'},
{'id' : 6 ,'nomMonument':'Musée du Petit Palais' , 'description': 'description Musée du Petit Palais' , 'dateCreation':'1900-08-09' , 'noteMichelin': 4 , 'departement_id':1, 'prix' : 5, 'photo':'museeDuPetitPalais.jpg' },
{
]
archive des fichiers d’images de ce sujet
-- sujet 16 : monument / departement **
-- DEPARTEMENT :
INSERT INTO departement(id_departement, nom_departement) VALUES
NULL, 'Bouche du Rhone'),
(NULL, 'Gard'),
(NULL, 'Vaucluse');
(
-- MONUMENT :
INSERT INTO monument(id_monument, nom_monument, description, date_creation, note_michelin, departement_id, prix, photo) VALUES
NULL,'Château d If', 'Le château d If est une forteresse qui a eu pour but de protéger les côtes d une invasion, de couvrir les sorties et le mouillage de la nouvelle flotte de galères royales ainsi que de surveiller Marseille, ratachée au Royayme de France en 1480.', '1529-1-1', '4', '1', 10.5, 'chateauDIf.jpg'),
(NULL,'Basilique Notre-Dame de la Garde', 'La Basilique Notre-Dame de la Garde également appelée "La Bonne Mère" est une des basiliques mineures de l Église catholique. Elle a été construite en 1864 par l architecte Henri Espérandieu dans le style romano byzantin.', '1700-8-9', '3', '1', 0, 'basiliqueNotreDameDeLaGarde.jpg'),
(NULL,'Pont du Gard', 'Le pont du Gard est un pont, bâti dans la première moitié du premier siècle, à trois niveaux destiné au passage d un aqueduc romain enjambant le Gardon.', '0500-1-1', '5', '2', 15, 'pontDuGard.jpg'),
(NULL,'La Maison Carrée', 'La Maison Carrée est un temple romain hexastyle édifié au début du premier siècle. Elle est dédiée lors de sa construction pour Auguste à la gloire de ses deux petits-fils: Lucius Caesar et Caius Julius Caesar.', '0500-1-1', '4', '2', 10.5, 'laMaisonCarree.jpg'),
(NULL,'Palais des Papes', 'Le Palais des Papes est le plus important palais gothique de l Occident. Édifié à partir de 1335 par deux papes bâtisseurs, Benoît XII et son successeur Clément VI, il est le symbole du rayonnement de l église sur l Occident Chrétien au XIVème siècle.', '1500-9-9', '5', '3', 6, 'palaisDesPapes.jpg'),
(NULL,'Musée du Petit Palais', 'Le musée du Petit Palais est un musée ouvert en 1976 dans une livrée de cardinalice consacré à la peinture et à la sculpture médiévales et de la première Renaissance. Il rassemble environ 390 peintures et 600 sculptures dont l une des plus importantes collections internationales de primitifs italiens.', '1900-8-9', '4', '3', 5, 'museeDuPetitPalais.jpg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_epoque | /type-epoque/show |
GET | affiche les types d’époques | retourne la vue show_type_epoque.html |
add_type_epoque | /type-epoque/add |
GET | affiche le formulaire pour ajouter un type d’époque | retourne la vue add_type_epoque.html |
valid_add_type_epoque | /type-epoque/add |
POST | validation (soumission) du formulaire pour ajouter un type d’époque | redirection sur la route /type-epoque/show |
delete_type_epoque | /type-epoque/delete |
GET | suppression d’un type d’époque | redirection sur la route /type-epoque/show |
edit_type_epoque | /type-epoque/edit |
GET | affiche le formulaire pour modifier un type d’époque | retourne la vue edit_type_epoque.html |
valid_edit_type_epoque | /type-epoque/edit |
POST | validation (soumission) du formulaire pour modifier un type d’époque | redirection sur la route /type-epoque/show |
show_tableau | /tableau/show |
GET | affiche les tableaux | retourne la vue show_tableau.html |
add_tableau | /tableau/add |
GET | affiche le formulaire pour ajouter un tableau | retourne la vue add_tableau.html |
valid_add_tableau | /tableau/add |
POST | validation (soumission) du formulaire pour ajouter un tableau | redirection sur la route /tableau/show |
delete_tableau | /tableau/delete |
GET | suppression d’un tableau | redirection sur la route /tableau/show |
edit_tableau | /tableau/edit |
GET | affiche le formulaire pour modifier un tableau | retourne la vue edit_tableau.html |
valid_edit_tableau | /tableau/edit |
POST | validation (soumission) du formulaire pour modifier un tableau | redirection sur la route /tableau/show |
filtre_tableau | /tableau/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_tableau_filtre_show.html |
########################################################### Sujet 17
= [
typesEpoque 'id': 1,'libelle': 'Renaissance'},
{'id': 2,'libelle': 'Temps Modernes'},
{'id': 3,'libelle': 'Contemporain'},
{'id': 4,'libelle': 'Moyen-Age'}
{
]
= [
tableaux 'id':1,'nomTableau':'La Joconde', 'prixAssurance':'4000','dateRealisation':'1506-10-21', 'peintre':'Léonard de Vinci', 'localisationMusee':'Louvre', 'photo':'laJoconde.jpeg', 'mouvement':None, 'typeEpoque_id':1},
{'id':2,'nomTableau':'Le Radeau de La Méduse', 'prixAssurance':'300.2','dateRealisation':'1819-03-15', 'peintre':'Théodore Géricault', 'localisationMusee':'Louvre', 'photo':'leRadeauDeLaMeduse.jpeg', 'mouvement':'romantisme', 'typeEpoque_id':3},
{'id':3,'nomTableau':'Guernica', 'prixAssurance':'200.6','dateRealisation':'1937-06-04', 'peintre':'Pablo Picasso', 'localisationMusee':'Reina Sofia', 'photo':'guernica.jpeg', 'mouvement':'cubisme','typeEpoque_id':3},
{'id':4,'nomTableau':"L'Ecole d'Athène", 'prixAssurance':'105.3','dateRealisation':'1512-02-21', 'peintre':'Raphaël', 'localisationMusee':'Vatican', 'photo':'lEcoleDAthene.jpeg', 'mouvement':'maniérisme', 'typeEpoque_id':1},
{'id':5,'nomTableau':'La Jeune Fille à la perle', 'prixAssurance':'2040','dateRealisation':'1665-11-12', 'peintre':'Johannes Vermeer', 'localisationMusee':'Mauritshuis', 'photo':'laJeuneFilleALaPerle.jpeg', 'mouvement':'baroque', 'typeEpoque_id':2},
{'id':6,'nomTableau':'La Laitière', 'prixAssurance':'3040','dateRealisation':'1658-05-30', 'peintre':'Johannes Vermeer', 'localisationMusee':'Rijksmuseum', 'photo':'laLaitière.jpeg', 'mouvement':'baroque', 'typeEpoque_id':2},
{'id':7,'nomTableau':'Le Calvaire', 'prixAssurance':'5060','dateRealisation':'1505-09-30', 'peintre':'Josse Lieferinxe', 'localisationMusee':'Louvre', 'photo':'leCalvaire.jpeg','mouvement':None, 'typeEpoque_id':1},
{'id':9,'nomTableau':'Portrait du bouffon Gonella', 'prixAssurance':'1230','dateRealisation':'1445-03-18', 'peintre':'Jean Fouquet', 'localisationMusee':'Kunsthistorisches Museum', 'photo':'leProtraitduBouffonGonella.jpeg','mouvement':None, 'typeEpoque_id':4},
{'id':10,'nomTableau':'La liberté guidant le peuple', 'prixAssurance':'150.5','dateRealisation':'1830-12-25', 'peintre':'Eugène DelaCroix', 'localisationMusee':'Louvre', 'photo':'laLiberteGuidantlePeuple.jpeg','mouvement': 'romantisme', 'typeEpoque_id':3},
{'id':11,'nomTableau':"Rentable de l'Agneau mystique", 'prixAssurance':'1010','dateRealisation':'1432-01-05', 'peintre':'Jan van Eyck', 'localisationMusee':'Cathédrale Saint-Bavon de Gand', 'photo':'AgneauMystique.jpeg','mouvement':None, 'typeEpoque_id':4}
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 17 : tableau / typeEpoque --
INSERT INTO type_epoque (id_type_epoque,libelle) VALUES
NULL, 'Renaissance')
(NULL,'Temps Modernes')
(NULL, 'Contemporain')
(NULL, 'Moyen-Age');
(
INSERT INTO tableau (id_tableau, nom_tableau, prix_assurance, date_realisation, peintre , localisation_musee, photo ,mouvement, type_epoque_id)
VALUES (NULL, 'La Joconde', '4000', '1506-10-21', 'Léonard de Vinci', 'Louvre', 'laJoconde.jpeg', NULL, 1),
NULL, 'Le Radeau de La Méduse', '300.2','1819-03-15', 'Théodore Géricault', 'Louvre', 'leRadeauDeLaMeduse.jpeg', 'romantisme',3),
(NULL, 'Guernica', '200.6','1937-06-04', 'Pablo Picasso', 'Reina Sofia', 'guernica.jpeg', 'cubisme',3),
(NULL, 'L Ecole d Athène', '105.3','1512-02-21', 'Raphaël', 'Vatican', 'lEcoleDAthene.jpeg', 'maniérisme', 1)
(NULL, 'La Jeune Fille à la perle', '2040','1665-11-12', 'Johannes Vermeer', 'Mauritshuis', 'laJeuneFilleALaPerle.jpeg', 'baroque',2)
(NULL, 'La Laitière', '3040','1658-05-30','Johannes Vermeer', 'Rijksmuseum', 'laLaitière.jpeg', 'baroque', 2)
(NULL, 'Le Calvaire', '5060','1505-09-30', 'Josse Lieferinxe', 'Louvre', 'leCalvaire.jpeg',NULL, 1)
(NULL,'Portrait du bouffon Gonella','1230','1445-03-18', 'Jean Fouquet', 'Kunsthistorisches Museum', 'leProtraitduBouffonGonella.jpeg',NULL, 4)
(NULL,'La liberté guidant le peuple', '150.5','1830-12-25', 'Eugène DelaCroix', 'Louvre', 'laLiberteGuidantlePeuple.jpeg', 'romantisme', 3)
(NULL,'Rentable de l Agneau mystique', '1010','1432-01-05', 'Jan van Eyck', 'Cathédrale Saint-Bavon de Gand', 'AgneauMystique.jpeg',NULL, 4);
(
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_sport | /type-sport/show |
GET | affiche les types de sports | retourne la vue show_type_sport.html |
add_type_sport | /type-sport/add |
GET | affiche le formulaire pour ajouter un type de sport | retourne la vue add_type_sport.html |
valid_add_type_sport | /type-sport/add |
POST | validation (soumission) du formulaire pour ajouter un type de sport | redirection sur la route /type-sport/show |
delete_type_sport | /type-sport/delete |
GET | suppression d’un type de sport | redirection sur la route /type-sport/show |
edit_type_sport | /type-sport/edit |
GET | affiche le formulaire pour modifier un type de sport | retourne la vue edit_type_sport.html |
valid_edit_type_sport | /type-sport/edit |
POST | validation (soumission) du formulaire pour modifier un type de sport | redirection sur la route /type-sport/show |
show_sport | /sport/show |
GET | affiche les sports | retourne la vue show_sport.html |
add_sport | /sport/add |
GET | affiche le formulaire pour ajouter un sport | retourne la vue add_sport.html |
valid_add_sport | /sport/add |
POST | validation (soumission) du formulaire pour ajouter un sport | redirection sur la route /sport/show |
delete_sport | /sport/delete |
GET | suppression d’un sport | redirection sur la route /sport/show |
edit_sport | /sport/edit |
GET | affiche le formulaire pour modifier un sport | retourne la vue edit_sport.html |
valid_edit_sport | /sport/edit |
POST | validation (soumission) du formulaire pour modifier un sport | redirection sur la route /sport/show |
filtre_sport | /sport/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_sport_filtre_show.html |
########################################################### Sujet 18
= [
typesSport 'id':1,'libelle':'Ballon'},
{'id':2,'libelle':'Raquette'},
{'id':3,'libelle':'Combat'},
{'id':4,'libelle':'Aquatique'}
{
]
= [
sports 'id':1,'nomSport':'Football', 'prixInscription':'80', 'dateLimiteInscription':'2020-10-19', 'typeSport_id' :1 , 'image':'foot.jpg','nbPratiquants':15},
{'id':2,'nomSport':'Basketball', 'prixInscription':'80', 'dateLimiteInscription':'2020-10-19', 'typeSport_id' :1 , 'image':'basket.jpg','nbPratiquants':151},
{'id':3,'nomSport':'Tennis de table', 'prixInscription':'80', 'dateLimiteInscription':'2020-10-19', 'typeSport_id' :2, 'image':'tennisTable.jpg','nbPratiquants':5},
{'id':4,'nomSport':'Tennis', 'prixInscription':'85', 'dateLimiteInscription':'2020-10-19', 'typeSport_id' :2, 'image':'tennis.jpg','nbPratiquants':20},
{'id':5,'nomSport':'Badminton', 'prixInscription':'70', 'dateLimiteInscription':'2020-10-22', 'typeSport_id' :2, 'image':'badminton.png','nbPratiquants':22},
{'id':6,'nomSport':'Judo', 'prixInscription':'90', 'dateLimiteInscription':'2020-10-25', 'typeSport_id' :3, 'image':'judo.jpg','nbPratiquants':43},
{'id':7,'nomSport':'Boxe', 'prixInscription':'72.50', 'dateLimiteInscription':'2020-10-24', 'typeSport_id' :3, 'image':'boxe.jpg','nbPratiquants':52},
{'id':8,'nomSport':'Karaté', 'prixInscription':'60.99', 'dateLimiteInscription':'2020-10-23','typeSport_id' :3, 'image':'karaté.png', 'nbPratiquants':30},
{'id':9,'nomSport':'Natation', 'prixInscription':'30.30', 'dateLimiteInscription':'2020-10-30', 'typeSport_id' :4, 'image':'natation.jpg','nbPratiquants':100},
{'id':10,'nomSport':'Kanoé', 'prixInscription':'125.99', 'dateLimiteInscription':'2020-10-29', 'typeSport_id' :4, 'image':'kanoe.jpg','nbPratiquants':99},
{'id':11,'nomSport':'Water Polo', 'prixInscription':'31.90', 'dateLimiteInscription':'2020-09-19', 'typeSport_id' :4, 'image':'waterPolo.jpg','nbPratiquants':25},
{'id':12,'nomSport':'Planche à voile', 'prixInscription':'230', 'dateLimiteInscription':'2020-10-19', 'typeSport_id' :4, 'image':'planche.jpg','nbPratiquants':30},
{'id':13,'nomSport':'Handball', 'prixInscription':'10', 'dateLimiteInscription':'2020-08-19','typeSport_id' :1, 'image':'hand.jpg','nbPratiquants':22},
{'id':14,'nomSport':'Volleyball', 'prixInscription':'25', 'dateLimiteInscription':'2020-08-19','typeSport_id' :1, 'image':'volley.jpg','nbPratiquants':55},
{'id':15,'nomSport':'Rugby', 'prixInscription':'30.80', 'dateLimiteInscription':'2020-10-19', 'typeSport_id' :1, 'image':'rugby.jpg','nbPratiquants':60}
{
]
archive des fichiers d’images de ce sujet
-- sujet 18 : sport / type_sport **
INSERT INTO type_sport(id_type_sport, libelle) VALUES
NULL,'Ballon'),
(NULL,'Raquette'),
(NULL,'Combat'),
(NULL,'Aquatique');
(
INSERT INTO sport(id_sport, nom_sport,prix_inscription,date_limite_inscription,type_sport_id,image,nb_pratiquants) VALUES
NULL,'Football',80,'2020-10-19',1,'foot.jpg',15),
(NULL,'Basketball',80,'2020-10-19',1,'basket.jpg',151),
(NULL,'Tennis de table',80,'2020-10-19',2,'tennisTable.jpg',5),
(NULL,'Tennis',85,'2020-10-19',2,'tennis.jpg',20),
(NULL,'Badminton',70,'2020-10-22',2,'badminton.png',22),
(NULL,'Judo',90,'2020-10-25',3,'judo.jpg',43),
(NULL,'Boxe',72.50,'2020-10-24',3,'boxe.jpg',52),
(NULL,'Karaté',60.99,'2020-10-23',3,'karaté.png',30),
(NULL,'Natation',30.30,'2020-10-30',4,'natation.jpg',100),
(NULL,'Kanoé',125.99,'2020-10-29',4,'kanoe.jpg',99),
(NULL,'Water Polo',31.90,'2020-09-19',4,'waterPolo.jpg',25),
(NULL,'Planche à voile',230,'2020-10-19',4,'planche.jpg',30),
(NULL,'Handball',10,'2020-08-19',1,'hand.jpg',22),
(NULL,'Volleyball',25,'2020-08-19',1,'volley.jpg',55),
(NULL,'Rugby',30.80,'2020-10-19',1,'rugby.jpg',60); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_arbre | /type-arbre/show |
GET | affiche les types d’arbres | retourne la vue show_type_arbre.html |
add_type_arbre | /type-arbre/add |
GET | affiche le formulaire pour ajouter un type d’arbre | retourne la vue add_type_arbre.html |
valid_add_type_arbre | /type-arbre/add |
POST | validation (soumission) du formulaire pour ajouter un type d’arbre | redirection sur la route /type-arbre/show |
delete_type_arbre | /type-arbre/delete |
GET | suppression d’un type d’arbre | redirection sur la route /type-arbre/show |
edit_type_arbre | /type-arbre/edit |
GET | affiche le formulaire pour modifier un type d’arbre | retourne la vue edit_type_arbre.html |
valid_edit_type_arbre | /type-arbre/edit |
POST | validation (soumission) du formulaire pour modifier un type d’arbre | redirection sur la route /type-arbre/show |
show_arbre | /arbre/show |
GET | affiche les arbres | retourne la vue show_arbre.html |
add_arbre | /arbre/add |
GET | affiche le formulaire pour ajouter un arbre | retourne la vue add_arbre.html |
valid_add_arbre | /arbre/add |
POST | validation (soumission) du formulaire pour ajouter un arbre | redirection sur la route /arbre/show |
delete_arbre | /arbre/delete |
GET | suppression d’un arbre | redirection sur la route /arbre/show |
edit_arbre | /arbre/edit |
GET | affiche le formulaire pour modifier un arbre | retourne la vue edit_arbre.html |
valid_edit_arbre | /arbre/edit |
POST | validation (soumission) du formulaire pour modifier un arbre | redirection sur la route /arbre/show |
filtre_arbre | /arbre/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_arbre_filtre_show.html |
########################################################### Sujet 19
= [
typesArbre 'id':1,'designation':'Pinacées'},
{'id':2,'designation':'Rosaceae'},
{'id':3,'designation':'Fagaceae'},
{'id':4,'designation':'Sapindaceae'},
{'id':5,'designation':'Oleaceae'},
{'id':6,'designation':'Salicaceae'},
{'id':7,'designation':'Fabaceae'},
{
]
= [
arbres 'id':1,'nomArbre':'sapin', 'hauteurMaxi':'10', 'datePlantation':'2020-05-05', 'prix_m3':'401','surfacePlantation':'5','localisation':'Doubs', 'type_arbre_id' :1, 'image':'sapin.jpg'},
{'id':2,'nomArbre':'pin rouge', 'hauteurMaxi':'35', 'datePlantation':'2020-02-20', 'prix_m3':'900','surfacePlantation':'3','localisation':'Jura', 'type_arbre_id' :1, 'image':'pin.jpeg'},
{'id':3,'nomArbre':'pommier', 'hauteurMaxi':'30', 'datePlantation':'2019-08-05', 'prix_m3':'300','surfacePlantation':'10','localisation':'Jura', 'type_arbre_id' :2, 'image':'pommier.jpg'},
{'id':4,'nomArbre':'cerisier', 'hauteurMaxi':'25', 'datePlantation':'2018-07-02', 'prix_m3':'650','surfacePlantation':'15','localisation':'Japon', 'type_arbre_id' :2, 'image':'ceriser.jpg'},
{'id':5,'nomArbre':'chêne', 'hauteurMaxi':'35', 'datePlantation':'2017-04-17', 'prix_m3':'105','surfacePlantation':'30','localisation':'Doubs', 'type_arbre_id' :3, 'image':'chêne.jpg'},
{'id':6,'nomArbre':'hêtre', 'hauteurMaxi':'45', 'datePlantation':'2016-05-25', 'prix_m3':'195','surfacePlantation':'23','localisation':'Voges', 'type_arbre_id' :3, 'image':'hêtre.jpg'},
{'id':7,'nomArbre':'marronnier', 'hauteurMaxi':'32', 'datePlantation':'2019-06-08', 'prix_m3':'268','surfacePlantation':'14','localisation':'Doubs', 'type_arbre_id' :4, 'image':'marronnier.jpg'},
{'id':8,'nomArbre':'olivier', 'hauteurMaxi':'20', 'datePlantation':'2019-07-19', 'prix_m3':'456','surfacePlantation':'26','localisation':'Portugal', 'type_arbre_id' :5, 'image':'olivier.jpeg'},
{'id':9,'nomArbre':'saule pleureur', 'hauteurMaxi':'30', 'datePlantation':'2018-01-15', 'prix_m3':'847','surfacePlantation':'2','localisation':'Jura', 'type_arbre_id' :6, 'image':'saule.jpg'},
{'id':10,'nomArbre':'acacia', 'hauteurMaxi':'48', 'datePlantation':'2019-08-26', 'prix_m3':'984','surfacePlantation':'35','localisation':'Australie', 'type_arbre_id' :7, 'image':'acacia.jpg'},
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 19 : arbre / famille_arbre **
INSERT INTO type_arbre(id_type_arble,designation) VALUES
NULL,'Pinacées'),
(NULL,'Rosaceae'),
(NULL,'Fagaceae'),
(NULL,'Sapindaceae'),
(NULL,'Oleaceae'),
(NULL,'Salicaceae'),
(NULL,'Fabaceae');
(
INSERT INTO arbre (id_arbre,nom_arbre,hauteur_maxi,date_plantation,prix_m3,surface_plantation, localisation, type_arbre_id, image ) VALUES
NULL,'sapin', 10, '2020-05-05',401 ,5 , 'Doubs', 1, 'sapin.jpg'),
(NULL,'pin rouge', 35, '2020-02-20', 900,3,'Jura', 1,'pin.jpeg'),
(NULL,'pommier', 30, '2019-08-05', 300,10,'Jura',2,'pommier.jpg'),
(NULL,'cerisier',25,'2018-07-02', 650,15,'Japon', 2,'ceriser.jpg'),
(NULL,'chêne',35,'2017-04-17',105,30,'Doubs', 3,'chêne.jpg'),
(NULL,'hêtre', 45, '2016-05-25', 195,23,'Vosges',3,'hêtre.jpg'),
(NULL,'marronnier',32,'2019-06-08',268,14,'Doubs', 4,'marronnier.jpg'),
(NULL,'olivier',20, '2019-07-19', 456,26,'Portugal', 5,'olivier.jpeg'),
(NULL,'saule pleureur', 30, '2018-01-15', 847,2,'Jura', 6,'saule.jpg'),
(NULL,'acacia', 48, '2019-08-26', 984,35,'Australie', 7,'acacia.jpg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_animal | /type-animal/show |
GET | affiche les types d’animaux | retourne la vue show_type_animal.html |
add_type_animal | /type-animal/add |
GET | affiche le formulaire pour ajouter un type d’animal | retourne la vue add_type_animal.html |
valid_add_type_animal | /type-animal/add |
POST | validation (soumission) du formulaire pour ajouter un type d’animal | redirection sur la route /type-animal/show |
delete_type_animal | /type-animal/delete |
GET | suppression d’un type d’animal | redirection sur la route /type-animal/show |
edit_type_animal | /type-animal/edit |
GET | affiche le formulaire pour modifier un type d’animal | retourne la vue edit_type_animal.html |
valid_edit_type_animal | /type-animal/edit |
POST | validation (soumission) du formulaire pour modifier un type d’animal | redirection sur la route /type-animal/show |
show_animaux | /animal/show |
GET | affiche les animaux | retourne la vue show_animaux.html |
add_animal | /animal/add |
GET | affiche le formulaire pour ajouter un animal | retourne la vue add_animal.html |
valid_add_animal | /animal/add |
POST | validation (soumission) du formulaire pour ajouter un animal | redirection sur la route /animal/show |
delete_animal | /animal/delete |
GET | suppression d’un animal | redirection sur la route /animal/show |
edit_animal | /animal/edit |
GET | affiche le formulaire pour modifier un animal | retourne la vue edit_animal.html |
valid_edit_animal | /animal/edit |
POST | validation (soumission) du formulaire pour modifier un animal | redirection sur la route /animal/show |
filtre_animaux | /animal/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_animal_filtre_show.html |
########################################################### Sujet 20
= [
typeAnimal 'id' : 1, 'libelle':'chien', 'photo':'logo_chien.png'},
{'id' : 2, 'libelle':'chat', 'photo':'logo_chat.png'},
{'id' : 3, 'libelle':'oiseau', 'photo':'logo_oiseau.png'},
{'id' : 4, 'libelle':'poisson', 'photo':'logo_poisson.png'}
{
]
= [
animaux 'id' : 1,'nomAnimal':'Snoopy', 'prixAchat':'100.00', 'dateNaissance':'2021-06-12', 'couleur':'blanc', 'poids':'8.43', 'taille':'40.00', 'photo':'Snoopy.jpg', 'typeAnimal_id': '1'},
{'id' : 2,'nomAnimal':'Sam', 'prixAchat':'50.00', 'dateNaissance':'2023-01-21', 'couleur':'noir', 'poids':'12.3', 'taille':'50.00', 'photo':'Sam.jpg','typeAnimal_id': '1'},
{'id' : 3,'nomAnimal':'Aaron', 'prixAchat':'00.00', 'dateNaissance':'2022-11-05', 'couleur':'roux', 'poids':'2.43', 'taille':'10.00', 'photo':'Aaron.jpg','typeAnimal_id': '1'},
{'id' : 4,'nomAnimal':'Ulysse', 'prixAchat':'12.32', 'dateNaissance':'2020-12-12', 'couleur':'blanc', 'poids':'3.3', 'taille':'20.00', 'photo':'Ulysse.jpg','typeAnimal_id': '2'},
{'id' : 5,'nomAnimal':'Romeo', 'prixAchat':'150.99', 'dateNaissance':'2021-09-07', 'couleur':'noir', 'poids':'2.43', 'taille':'10.00', 'photo':'Romeo.jpg','typeAnimal_id': '1'},
{'id' : 6,'nomAnimal':'Abysse', 'prixAchat':'199.99', 'dateNaissance':'2020-01-21', 'couleur':'noir', 'poids':'0.13', 'taille':'10.00', 'photo':'Abysse.jpg','typeAnimal_id': '3'}
{'id' : 7,'nomAnimal':'Rox', 'prixAchat':'299.99', 'dateNaissance':'2020-2-30', 'couleur':'noir/blanc', 'poids':'8.43', 'taille':'60.00', 'photo':'Rox.jpg', 'typeAnimal_id': '1'},
{'id' : 8,'nomAnimal':'Donald', 'prixAchat':'29.99', 'dateNaissance':'2020-2-30', 'couleur':'noir/blanc', 'poids':'3.43', 'taille':'25.00', 'photo':'Donald.jpg', 'typeAnimal_id': '3'},
{'id' : 9,'nomAnimal':'Enzo', 'prixAchat':'299.99', 'dateNaissance':'2020-2-30', 'couleur':'roux', 'poids':'8.43', 'taille':'70.00', 'photo':'Enzo.jpg', 'typeAnimal_id': '1'},
{'id' : 10,'nomAnimal':'Nemo', 'prixAchat':'9.99', 'dateNaissance':'2020-2-30', 'couleur':'roujaune/bleux', 'poids':'0,1', 'taille':'11.00', 'photo':'Nemo.jpg', 'typeAnimal_id': '4'}
{
]
archive des fichiers d’images de ce sujet
-- # sujet 20 : animal / type_animal --
INSERT INTO type_animal(id_type_animal, nom_type, photo) VALUES
NULL,'chien','logo_chien.png'),
(NULL,'chat','logo_chat.png'),
(NULL,'oiseau','logo_oiseau.png'),
(NULL,'poisson','logo_poisson.png');
(
INSERT INTO animal(id_animal, type_animal_id, nom_animal, prix_achat, date_naissance, couleur, poids, taille, photo) VALUES
NULL,1,'Snoopy',100.00,'2021-06-12','blanc',8.43,40.00,'Snoopy.jpg'),
(NULL,2,'Sam',50.00,'2023-01-21','noir',12.3,50.00,'Sam.jpg'),
(NULL,1,'Aaron',00.00,'2022-11-05','roux',2.43,10.00,'Aaron.jpg'),
(NULL,2,'Ulysse',12.32,'2020-12-12','blanc',33,20.00),'Ulysse.jpg',
(NULL,1,'Romeo',150.99,'2021-09-07','noir',2.43,10.00,'Romeo.jpg'),
(NULL,3,'Abysse',199.99,'2020-01-21','noir',0.13,10.00,'Abysse.jpg'),
(NULL,1,'Rox',299.99,'2020-2-30','noir/blanc',8.43,60.00,'Rox.jpg'),
(NULL,3,'Donald',29.9,'2020-2-30','noir/blanc',3.43,25.00,'Donald.jpg'),
(NULL,1,'Enzo',299.99,'2020-2-30','roux',8.43,70.00,'Enzo.jpg'),
(NULL,4,'Nemo',9.99,'2022-2-30','jaune/bleu',0.1,11.00,'Nemo.jpg')
(
;
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_meuble | /type-meuble/show |
GET | affiche les types de meubles | retourne la vue show_type_meuble.html |
add_type_meuble | /type-meuble/add |
GET | affiche le formulaire pour ajouter un type de meuble | retourne la vue add_type_meuble.html |
valid_add_type_meuble | /type-meuble/add |
POST | validation (soumission) du formulaire pour ajouter un type de meuble | redirection sur la route /type-meuble/show |
delete_type_meuble | /type-meuble/delete |
GET | suppression d’un type de meuble | redirection sur la route /type-meuble/show |
edit_type_meuble | /type-meuble/edit |
GET | affiche le formulaire pour modifier un type de meuble | retourne la vue edit_type_meuble.html |
valid_edit_type_meuble | /type-meuble/edit |
POST | validation (soumission) du formulaire pour modifier un type de meuble | redirection sur la route /type-meuble/show |
show_meuble | /meuble/show |
GET | affiche les meubles | retourne la vue show_meuble.html |
add_meuble | /meuble/add |
GET | affiche le formulaire pour ajouter un meuble | retourne la vue add_meuble.html |
valid_add_meuble | /meuble/add |
POST | validation (soumission) du formulaire pour ajouter un meuble | redirection sur la route /meuble/show |
delete_meuble | /meuble/delete |
GET | suppression d’un meuble | redirection sur la route /meuble/show |
edit_meuble | /meuble/edit |
GET | affiche le formulaire pour modifier un meuble | retourne la vue edit_meuble.html |
valid_edit_meuble | /meuble/edit |
POST | validation (soumission) du formulaire pour modifier un meuble | redirection sur la route /meuble/show |
filtre_meuble | /meuble/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_meuble_filtre_show.html |
########################################################### Sujet 21
= [
typesMeuble 'id':1,'libelle':'canape'},
{'id':2,'libelle':'lit'},
{'id':3,'libelle':'commode'},
{'id':4,'libelle':'armoire'},
{
]
= [
meubles 'id':1,'nomMeuble':'klippan', 'prixMeuble':'50.20', 'dateFabrication':'2020-06-06', 'couleur':'rouge', 'materiaux' :'bois', 'typeMeuble_id':1, 'nbStock':'3', 'image':'klippan.png'},
{'id': 2, 'nomMeuble':'malm', 'prixMeuble':'12.00', 'dateFabrication':'2020-06-06', 'couleur':'vert', 'materiaux' :'acier', 'typeMeuble_id':2, 'nbStock':'5', 'image':'malm.png'},
{'id': 3, 'nomMeuble':'besta', 'prixMeuble':'14.36', 'dateFabrication':'2020-06-06', 'couleur':'jaune', 'materiaux' :'bois', 'typeMeuble_id':3, 'nbStock':'6', 'image':'besta.jpg'},
{'id': 4, 'nomMeuble':'billy', 'prixMeuble':'24.59', 'dateFabrication':'2020-06-06', 'couleur':'bleu', 'materiaux' :'verre', 'typeMeuble_id':4, 'nbStock':'2', 'image':'billy.jpg'},
{'id': 5, 'nomMeuble':'friheten', 'prixMeuble':'42.21', 'dateFabrication':'2020-06-06', 'couleur':'ebene', 'materiaux' :'acier', 'typeMeuble_id':1, 'nbStock':'8', 'image':'friheten.png'},
{'id': 6, 'nomMeuble':'brimnes', 'prixMeuble':'11.11', 'dateFabrication':'2019-06-06', 'couleur':'magenta', 'materiaux' :'alumonium', 'typeMeuble_id':2, 'nbStock':'5', 'image':'brimnes.png'},
{'id':7,'nomMeuble':'la commode du luxe', 'prixMeuble':'35.21', 'dateFabrication':'2019-06-06', 'couleur':'voilet', 'materiaux' :'marbre', 'typeMeuble_id':3, 'nbStock':'1', 'image':'commodeLuxe.jpg'},
{'id':8,'nomMeuble':'lack', 'prixMeuble':'32.25', 'dateFabrication':'2019-12-06', 'couleur':'gris', 'materiaux' :'acier', 'typeMeuble_id':4, 'nbStock':'7', 'image':'lack.png'},
{'id':9,'nomMeuble':'vilme', 'prixMeuble':'52.36', 'dateFabrication':'2019-12-26', 'couleur':'satin', 'materiaux' :'bois', 'typeMeuble_id':1, 'nbStock':'4', 'image':'vilme.png'},
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 21 : meuble / typeMeuble **
INSERT INTO type_meuble(id_type_meuble, libelle)
VALUES (NULL,'canape'),
NULL,'lit'),
(NULL,'commode'),
(NULL,'armoire');
(
INSERT INTO meuble (id_meuble, nom_meuble,prix_meuble,date_fabrication,couleur,materiaux,type_meuble_id,nb_stock,image) VALUES
NULL,'klippan', '50.20', '2020-06-06', 'rouge', 'bois', 1, 3, 'klippan.png'),
(NULL,'malm', '12.00', '2020-06-06', 'vert', 'acier', 2, 5, 'malm.png'),
(NULL,'besta', '14.36', '2020-06-06', 'jaune', 'bois', 3, 6, 'besta.jpg'),
(NULL,'billy', '24.59', '2020-06-06', 'bleu', 'verre', 4, 2, 'billy.jpg'),
(NULL,'friheten', '42.21', '2020-06-06', 'ebene', 'acier', 1, 8, 'friheten.png'),
(NULL,'brimnes', '11.11', '2019-06-06', 'magenta', 'aluminium', 2, 5, 'brimnes.png'),
(NULL,'la commode du luxe', '35.21', '2019-06-06', 'voilet', 'marbre', 3, 1, 'commodeLuxe.jpg'),
(NULL,'lack', '32.25', '2019-12-06', 'gris', 'acier', 4, 7, 'lack.png'),
(NULL,'vilme', '52.36', '2019-12-26', 'satin', 'bois', 1, 4, 'vilme.png');
(
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_marque | /marque/show |
GET | affiche les marques | retourne la vue show_marque.html |
add_marque | /marque/add |
GET | affiche le formulaire pour ajouter une marque | retourne la vue add_marque.html |
valid_add_marque | /marque/add |
POST | validation (soumission) du formulaire pour ajouter une marque | redirection sur la route /marque/show |
delete_marque | /marque/delete |
GET | suppression d’une marque | redirection sur la route /marque/show |
edit_marque | /marque/edit |
GET | affiche le formulaire pour modifier une marque | retourne la vue edit_marque.html |
valid_edit_marque | /marque/edit |
POST | validation (soumission) du formulaire pour modifier une marque | redirection sur la route /marque/show |
show_moto | /moto/show |
GET | affiche les motos | retourne la vue show_moto.html |
add_moto | /moto/add |
GET | affiche le formulaire pour ajouter une moto | retourne la vue add_moto.html |
valid_add_moto | /moto/add |
POST | validation (soumission) du formulaire pour ajouter une moto | redirection sur la route /moto/show |
delete_moto | /moto/delete |
GET | suppression d’une moto | redirection sur la route /moto/show |
edit_moto | /moto/edit |
GET | affiche le formulaire pour modifier une moto | retourne la vue edit_moto.html |
valid_edit_moto | /moto/edit |
POST | validation (soumission) du formulaire pour modifier une moto | redirection sur la route /moto/show |
filtre_moto | /moto/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_moto_filtre_show.html |
# peyrous yonnis
= [
marques 'id' : 1, 'libelle':'Yamaha', 'logo':'logo-yamaha.jpg'},
{'id' : 2, 'libelle':'Honda', 'logo':'logo-Honda.png'},
{'id' : 3, 'libelle':'Kawasaki','logo':'logo-kawasaki.jpg'},
{'id' : 4, 'libelle':'BMW', 'logo':'logo-bmw.png'},
{'id' : 5, 'libelle':'Suzuki', 'logo':'logo-Suzuki.png'},
{'id' : 6, 'libelle':'Triumph','logo':'logo-Triumph.jpg'},
{'id' : 7, 'libelle':'Piaggio','logo':'logo-Piaggio.png'},
{'id' : 8, 'libelle':'KTM', 'logo':'logo-KTM.png'},
{'id' : 9, 'libelle':'Ducati', 'logo':'logo-Ducati.png'},
{'id' : 10, 'libelle':'Harley Davidson', 'logo':'logo-Harley-Davidson.png'},
{'id' : 11, 'libelle':'Kymco', 'logo':'logo-kymco.jpg'},
{'id' : 12, 'libelle':'Aprilia','logo':'logo-aprilia.jpg'}
{
]
= [
motos 'id' : 1, 'nomMoto':'T-MAX', 'puissance':400, 'DateMiseEnCirculation':'2012-06-15', 'couleur':'black', 'marque_id':1, 'photo':'T-MAX-noir.jpg'},
{'id' : 2, 'nomMoto':'Niken', 'puissance':350, 'DateMiseEnCirculation':'2007-06-15', 'couleur':'yellow', 'marque_id':1, 'photo':'niken.jpg'},
{'id' : 3, 'nomMoto':'MT09', 'puissance':250, 'DateMiseEnCirculation':'2015-06-15', 'couleur':'red', 'marque_id':1, 'photo':'mt09.jpg'},
{'id' : 4, 'nomMoto':'X-MAX', 'puissance':450, 'DateMiseEnCirculation':'2019-06-15', 'couleur':'orange', 'marque_id':1, 'photo':'xmax.jpg'},
{'id' : 5, 'nomMoto':'MT09-Tracer', 'puissance':100, 'DateMiseEnCirculation':'2001-06-15', 'couleur':'purple', 'marque_id':1, 'photo':'mt09tracer.jpg'},
{'id' : 6, 'nomMoto':'Africa Twin', 'puissance':500, 'DateMiseEnCirculation':'1999-07-21', 'couleur':'white', 'marque_id':2, 'photo':'AFRICA_TWIN.jpg'},
{'id' : 7, 'nomMoto':'Pan European', 'puissance':1500, 'DateMiseEnCirculation':'2000-09-30', 'couleur':'black', 'marque_id':2, 'photo':'panEuropean.jpg'},
{'id' : 8, 'nomMoto':'Sh','puissance':150, 'DateMiseEnCirculation':'2020-09-30', 'couleur':'black', 'marque_id':2, 'photo':'sh.jpg'},
{'id' : 8, 'nomMoto':'Swing', 'puissance':200, 'DateMiseEnCirculation':'2021-09-30', 'couleur':'black', 'marque_id':2, 'photo':'swing.jpg'},
{'id' : 10, 'nomMoto':'PS','puissance':6, 'DateMiseEnCirculation':'2017-09-30', 'couleur':'black', 'marque_id':2, 'photo':'ps.jpeg'},
{'id' : 11, 'nomMoto':'Deauville', 'puissance':100, 'DateMiseEnCirculation':'2010-09-30', 'couleur':'black', 'marque_id':2, 'photo':'deauville.jpg'},
{'id' : 12, 'nomMoto':'A1','puissance':100, 'DateMiseEnCirculation':'2025-08-27', 'couleur':'green', 'marque_id':3, 'photo':'a1.jpg'},
{'id' : 13, 'nomMoto':'H2','puissance':1000, 'DateMiseEnCirculation':'2020-08-27', 'couleur':'green', 'marque_id':3, 'photo':'h2.jpg'},
{'id' : 14, 'nomMoto':'VN','puissance':500, 'DateMiseEnCirculation':'2024-08-27', 'couleur':'green', 'marque_id':3, 'photo':'vn.jpg'},
{'id' : 15, 'nomMoto':'Z', 'puissance':200, 'DateMiseEnCirculation':'2023-08-27', 'couleur':'green', 'marque_id':3, 'photo':'z.jpg'},
{'id' : 16, 'nomMoto':'Ninja 400', 'puissance':400, 'DateMiseEnCirculation':'2022-08-27', 'couleur':'green', 'marque_id':3, 'photo':'ninja400.jpg'},
{'id' : 17, 'nomMoto':'Vulcan 650', 'puissance':650, 'DateMiseEnCirculation':'2021-08-27', 'couleur':'green', 'marque_id':3, 'photo':'vulcan250.jpg'},
{'id' : 18, 'nomMoto':'K 1600', 'puissance':1600, 'DateMiseEnCirculation':'2010-08-27', 'couleur':'blue', 'marque_id':4, 'photo':'k1600.jpg'},
{'id' : 19, 'nomMoto':'F 900 XR', 'puissance':900, 'DateMiseEnCirculation':'2011-08-27', 'couleur':'blue', 'marque_id':4, 'photo':'f900xr.jpg'},
{'id' : 20, 'nomMoto':'R 1250 R', 'puissance':1250, 'DateMiseEnCirculation':'2012-08-27', 'couleur':'blue', 'marque_id':4, 'photo':'r1250r.jpeg'},
{'id' : 21, 'nomMoto':'R 1200 RT', 'puissance':1200, 'DateMiseEnCirculation':'2013-08-27', 'couleur':'blue', 'marque_id':4, 'photo':'r1200rt.jpg'},
{'id' : 22, 'nomMoto':'R 900 RT', 'puissance':900, 'DateMiseEnCirculation':'2014-08-27', 'couleur':'blue', 'marque_id':4, 'photo':'r900rt.jpg'},
{'id' : 23, 'nomMoto':'S 1000 SR', 'puissance':1000, 'DateMiseEnCirculation':'2015-08-27', 'couleur':'blue', 'marque_id':4, 'photo':'s1000sr.jpeg'},
{ ]
archive des fichiers d’images de ce sujet
INSERT INTO marque(id_marque, libelle,logo) VALUES
NULL,'Yamaha','logo-yamaha.jpg'),
(NULL,'Honda','logo-Honda.png'),
(NULL,'Kawasaki','logo-kawasaki.jpg'),
(NULL,'BMW','logo-bmw.png'),
(NULL,'Suzuki','logo-Suzuki.png'),
(NULL,'Triumph','logo-Triumph.jpg'),
(NULL,'Piaggio','logo-Piaggio.png'),
(NULL,'KTM','logo-KTM.png'),
(NULL,'Ducati','logo-Ducati.png'),
(NULL,'Harley Davidson','logo-Harley-Davidson.png'),
(NULL,'Kymco','logo-kymco.jpg'),
(NULL,'Aprilia','logo-aprilia.jpg');
(
INSERT INTO moto(id_moto, nom_moto, puissance, date_premiere_mise_en_circulation, couleur, prix, marque_id, photo) VALUES
NULL,'T-MAX', 400, '2012-06-15', 'Noir' ,1000, 1,'T-MAX-noir.jpg'),
(NULL,'Niken', 350, '2007-06-15', 'Jaune' ,1100, 1,'niken.jpg'),
(NULL,'MT09', 250, '2015-06-15', 'Rouge' ,1200, 1,'mt09.jpg'),
(NULL,'X-MAX', 450, '2019-06-15', 'Orange' ,1300, 1,'xmax.jpg'),
(NULL,'MT09-Tracer', 100, '2001-06-15', 'Violet' ,1400, 1,'mt09tracer.jpg'),
(NULL,'Africa Twin', 500, '1999-07-21', 'White' ,1500, 2,'AFRICA_TWIN.jpg'),
(NULL,'Pan European', 1500, '20-09-30', 'Black' ,1600, 2,'panEuropean.jpg'),
(NULL,'Sh', 150, '2020-09-30', 'Black' ,1700, 2,'sh.jpg'),
(NULL,'Swing', 200, '2021-09-30', 'Black' ,1800, 2,'swing.jpg'),
(NULL,'PS', 6, '2017-09-30', 'Black' ,1900, 2,'ps.jpeg'),
(NULL,'Deauville', 100, '2010-09-30', 'Black' ,2000, 2,'deauville.jpg'),
(NULL,'A1', 100, '2025-08-27', 'Green' ,2100, 3,'a1.jpg'),
(NULL,'H2', 1000, '2020-08-27', 'Green' ,2200, 3,'h2.jpg'),
(NULL,'VN', 500, '2024-08-27', 'Green' ,2300, 3,'vn.jpg'),
(NULL,'Z', 200, '2023-08-27', 'Green' ,2400, 3,'z.jpg'),
(NULL,'Ninja 400', 400, '2022-08-27', 'Green' ,2500, 3,'ninja400.jpg'),
(NULL,'Vulcan 650', 650, '2021-08-27', 'Green' ,2600, 3,'vulcan250.jpg'),
(NULL,'K 1600', 1600, '2010-08-27', 'Blue' ,2700, 4,'k1600.jpg'),
(NULL,'F 900 XR', 900, '2011-08-27', 'Blue' ,2800, 4,'f900xr.jpg'),
(NULL,'R 1250 R', 1250, '2012-08-27', 'Blue' ,2900, 4,'r1250r.jpeg'),
(NULL,'R 1200 RT', 1200, '2013-08-27', 'Blue' ,3000, 4,'r1200rt.jpg'),
(NULL,'R 900 RT', 900, '2014-08-27', 'Blue' ,3100, 4,'r900rt.jpg'),
(NULL,'S 1000 SR', 1000, '2015-08-27', 'Blue' ,3200, 4,'s1000sr.jpeg'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_region | /region/show |
GET | affiche les regions | retourne la vue show_region.html |
add_region | /region/add |
GET | affiche le formulaire pour ajouter une region | retourne la vue add_region.html |
valid_add_region | /region/add |
POST | validation (soumission) du formulaire pour ajouter une region | redirection sur la route /region/show |
delete_region | /region/delete |
GET | suppression d’une region | redirection sur la route /region/show |
edit_region | /region/edit |
GET | affiche le formulaire pour modifier une region | retourne la vue edit_region.html |
valid_edit_region | /region/edit |
POST | validation (soumission) du formulaire pour modifier une region | redirection sur la route /region/show |
show_club | /club/show |
GET | affiche les clubs | retourne la vue show_club.html |
add_club | /club/add |
GET | affiche le formulaire pour ajouter un club | retourne la vue add_club.html |
valid_add_club | /club/add |
POST | validation (soumission) du formulaire pour ajouter un club | redirection sur la route /club/show |
delete_club | /club/delete |
GET | suppression d’un club | redirection sur la route /club/show |
edit_club | /club/edit |
GET | affiche le formulaire pour modifier un club | retourne la vue edit_club.html |
valid_edit_club | /club/edit |
POST | validation (soumission) du formulaire pour modifier un club | redirection sur la route /club/show |
filtre_club | /club/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_club_filtre_show.html |
########################################################### Sujet 23
= [
regions 'id' : 1 ,'nomRegion':'FrancheComte'},
{'id' : 2 ,'nomRegion':'IleDeFrance'},
{'id' : 3 ,'nomRegion':'Bretagne'},
{'id' : 4 ,'nomRegion':'Occitanie'},
{
]
= [
clubs 'id' : 1 ,'nomClub':'BelfortEchecs', 'nbAdherent':'67', 'dateCreation':'1977-01-31', 'prixCotisation':'100', 'region_id':1, 'image':'BelfortEchecs.jpg'},
{'id' : 2 ,'nomClub':'EchiquierQuimpérois', 'nbAdherent':'36', 'dateCreation':'1983-06-27', 'prixCotisation':'90', 'region_id':3, 'image':'EchiquierQuimperois.png'},
{'id' : 3 ,'nomClub':'TremblayEnFrance', 'nbAdherent':'109', 'dateCreation':'1982-03-05', 'prixCotisation':'50', 'region_id':2, 'image':'TremblayEnFrance.jpg'},
{'id' : 4 ,'nomClub':'EchiquierLedonien', 'nbAdherent':'25', 'dateCreation':'1966-06-12', 'prixCotisation':'71', 'region_id':1, 'image':'EchiquierLedonien.jpg'},
{'id' : 5 ,'nomClub':'EchiquierNimois' , 'nbAdherent':'85', 'dateCreation':'1987-03-21', 'prixCotisation':'120', 'region_id':4, 'image':'EchiquierNimois.jpg'},
{'id' : 6 ,'nomClub':'LuteceEchecs', 'nbAdherent':'89', 'dateCreation':'1957-08-05', 'prixCotisation':'420', 'region_id':2, 'image':'LuteceEchecs.jpg'},
{'id' : 7 ,'nomClub':'UsamEchiquierBrestois', 'nbAdherent':'73', 'dateCreation':'1964-06-25', 'prixCotisation':'100', 'region_id':3, 'image':'UsamEchiquierBrestois.jpg'},
{'id' : 8 ,'nomClub':'EchecsClubMontpellier' , 'nbAdherent':'119', 'dateCreation':'1981-04-15', 'prixCotisation':'85', 'region_id':4, 'image':'EchecsClubMontpellier.jpg'},
{'id' : 9 ,'nomClub':'ClichyEchecs92', 'nbAdherent':'85', 'dateCreation':'1961-10-07', 'prixCotisation':'189', 'region_id':2, 'image':'ClichyEchecs92.jpg'},
{'id' : 10 ,'nomClub':'RoiBlancMontbeliard', 'nbAdherent':'31', 'dateCreation':'1950-02-10', 'prixCotisation':'76', 'region_id':1, 'image':'RoiBlancMontbeliard.jpg'},
{'id' : 11 ,'nomClub':'EchiquierToulousain', 'nbAdherent':'88', 'dateCreation':'1978-03-18', 'prixCotisation':'140', 'region_id':4, 'image':'EchiquierToulousain.png'},
{'id' : 12 ,'nomClub':'RennesPaulBert', 'nbAdherent':'89', 'dateCreation':'1959-10-07', 'prixCotisation':'115', 'region_id':3, 'image':'RennesPaulBert.jpg'}
{ ]
archive des fichiers d’images de ce sujet
-- sujet 23 : club / region **
INSERT INTO region (id_region, nom_region) VALUES
NULL ,'FrancheComte'),
( NULL ,'IleDeFrance'),
( NULL ,'Bretagne'),
( NULL ,'Occitanie');
(
INSERT INTO club (id_club, nom_club, nb_adherent, date_creation, prix_cotisation, region_id, image) VALUES
NULL ,'BelfortEchecs','67','1977-01-31','100',1,'BelfortEchecs.jpg'),
(NULL ,'EchiquierQuimpérois', '36', '1983-06-27', '90', 3,'EchiquierQuimperois.png'),
(NULL ,'TremblayEnFrance', '109', '1982-03-05', '50', 2,'TremblayEnFrance.jpg'),
(NULL ,'EchiquierLedonien', '25', '1966-06-12', '71', 1,'EchiquierLedonien.jpg'),
(NULL ,'EchiquierNimois' , '85', '1987-03-21', '120', 4,'EchiquierNimois.jpg'),
(NULL ,'LuteceEchecs', '89', '1957-08-05', '420', 2,'LuteceEchecs.jpg'),
(NULL ,'UsamEchiquierBrestois', '73', '1964-06-25', '100', 3,'UsamEchiquierBrestois.jpg'),
(NULL ,'EchecsClubMontpellier' , '119', '1981-04-15', '85', 4,'EchecsClubMontpellier.jpg'),
(NULL ,'ClichyEchecs92', '85', '1961-10-07', '189', 2,'ClichyEchecs92.jpg'),
(NULL ,'RoiBlancMontbeliard', '31', '1950-02-10', '76', 1,'RoiBlancMontbeliard.jpg'),
(NULL ,'EchiquierToulousain', '88', '1978-03-18', '140', 4,'EchiquierToulousain.png'),
(NULL ,'RennesPaulBert', '89', '1959-10-07', '115', 3,'RennesPaulBert.jpg');
(
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_ville | /ville/show |
GET | affiche les villes | retourne la vue show_ville.html |
add_ville | /ville/add |
GET | affiche le formulaire pour ajouter une ville | retourne la vue add_ville.html |
valid_add_ville | /ville/add |
POST | validation (soumission) du formulaire pour ajouter une ville | redirection sur la route /ville/show |
delete_ville | /ville/delete |
GET | suppression d’une ville | redirection sur la route /ville/show |
edit_ville | /ville/edit |
GET | affiche le formulaire pour modifier une ville | retourne la vue add_ville.html |
valid_edit_ville | /ville/edit |
POST | validation (soumission) du formulaire pour modifier une ville | redirection sur la route /ville/show |
show_parking | /parking/show |
GET | affiche les parkings | retourne la vue show_parking.html |
add_parking | /parking/add |
GET | affiche le formulaire pour ajouter un parking | retourne la vue add_parking.html |
valid_add_parking | /parking/add |
POST | validation (soumission) du formulaire pour ajouter un parking | redirection sur la route /parking/show |
delete_parking | /parking/delete |
GET | suppression d’un parking | redirection sur la route /parking/show |
edit_parking | /parking/edit |
GET | affiche le formulaire pour modifier un parking | retourne la vue add_parking.html |
valid_edit_parking | /parking/edit |
POST | validation (soumission) du formulaire pour modifier un parking | redirection sur la route /parking/show |
filtre_parking | /parking/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_parking_filtre_show.html |
########################################################### Sujet 24
= [
villes 'id':1,'nomVille':'Lyon'},
{'id':2,'nomVille':'Lons-Le-Saunier'},
{'id':3,'nomVille':'Belfort'},
{'id':4,'nomVille':'Besançon'},
{'id':5,'nomVille':'Nara'},
{'id':6,'nomVille':'Montréal'}
{
]
= [
parkings 'id':1,'nomParking':'Saint-Julien', 'nbPlaces':'200', 'dateConstruction':'2011-09-06', 'adresse':'40 rue de Barre', 'prixPlaceHeure' :'51.00', 'Ville_id':'2', 'photo':'parking_1.png'},
{'id':2,'nomParking':'SuperPark', 'nbPlaces':'100', 'dateConstruction':'2019-01-05', 'adresse':'5 avenue Julien Humbey', 'prixPlaceHeure' :'04.00', 'Ville_id':'1', 'photo':'parking_2.png'},
{'id':3,'nomParking':'ParkingSuper', 'nbPlaces':'340', 'dateConstruction':'2007-03-03', 'adresse':'chemin Hortense Besson', 'prixPlaceHeure' :'02.20', 'Ville_id':'3', 'photo':'parking_3.png'},
{'id':4,'nomParking':'Nara Parking Lot', 'nbPlaces':'900', 'dateConstruction':'2011-02-21', 'adresse':'Suimoncho, Nara, 630-8208', 'prixPlaceHeure' :'01.30', 'Ville_id':'5', 'photo':'parking_4.png'},
{'id':5,'nomParking':'Parking 11 novembre', 'nbPlaces':'10002', 'dateConstruction':'2013-03-16', 'adresse':'5 avenue Julien Humbey', 'prixPlaceHeure' :'13.00', 'Ville_id':'1', 'photo':'parking_5.png'},
{'id':6,'nomParking':'Parking Rue Richebourg', 'nbPlaces':'3323', 'dateConstruction':'2001-02-14', 'adresse':'51 Rue Richebourg', 'prixPlaceHeure' :'21.00', 'Ville_id':'4', 'photo':'parking_6.png'},
{'id':7,'nomParking':'Parking de la tête d or', 'nbPlaces':'230', 'dateConstruction':'2011-01-23', 'adresse':'58 chemin Renard', 'prixPlaceHeure' :'25.00', 'Ville_id':'1', 'photo':'parking_7.png'},
{'id':8,'nomParking':'Saint-Patoche', 'nbPlaces':'20', 'dateConstruction':'2008-08-16', 'adresse':'94 place Anouk Pinto', 'prixPlaceHeure' :'35.00', 'Ville_id':'6', 'photo':'parking_8.png'},
{'id':9,'nomParking':'Place du Romain', 'nbPlaces':'243', 'dateConstruction':'2020-03-26', 'adresse':'86-1 Zoshicho', 'prixPlaceHeure' :'31.40', 'Ville_id':'5', 'photo':'parking_9.png'},
{'id':10,'nomParking':'Parking Saint-Bernard', 'nbPlaces':'92', 'dateConstruction':'2015-07-20', 'adresse':'rue Schneider', 'prixPlaceHeure' :'04.30', 'Ville_id':'4', 'photo':'parking_10.png'},
{'id':11,'nomParking':'Parking 11 Novembre', 'nbPlaces':'394', 'dateConstruction':'2013-03-19', 'adresse':'Place du 11 Novembre', 'prixPlaceHeure' :'5.10', 'Ville_id':'2', 'photo':'parking_11.png'},
{'id':12,'nomParking':'Parking gare', 'nbPlaces':'1297', 'dateConstruction':'2003-09-06', 'adresse':'5 avenue Julien Humbey', 'prixPlaceHeure' :'5.90', 'Ville_id':'1', 'photo':'parking_12.png'},
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 24 : parking / ville **
INSERT INTO ville(id_ville,nom_ville) VALUES
NULL,'Lyon'),
(NULL,'Lons-Le-Saunier'),
(NULL,'Belfort'),
(NULL,'Besançon'),
(NULL,'Nara'),
(NULL,'Montréal');
(
INSERT INTO parking(id_parking, nom_parking,nb_places,date_construction,adresse,prix_place,ville_id, photo) VALUES
NULL,'Saint-Julien', 200, '2011-09-06', '40 rue de Barre',51.00,2, 'parking_1.png'),
(NULL,'SuperPark', 100, '2019-01-05', '5 avenue Julien Humbey', 04.00,1, 'parking_2.png'),
(NULL,'ParkingSuper', 340, '2007-03-03', 'chemin Hortense Besson', 02.20, 3, 'parking_3.png'),
(NULL,'Nara Parking Lot', 900, '2011-02-21', 'Suimoncho, Nara, 630-8208', 01.30, 5, 'parking_4.png'),
(NULL,'Parking 11 novembre', 10002, '2013-03-16', '5 avenue Julien Humbey', 13.00, 1, 'parking_5.png'),
(NULL,'Parking Rue Richebourg', 3323, '2001-02-14', '51 Rue Richebourg', 21.00, 4, 'parking_6.png'),
(NULL,'Parking de la tete d or', 230, '2011-01-23', '58 chemin Renard', 25.00, 1, 'parking_7.png'),
(NULL,'Saint-Patoche', 20, '2008-08-16','94 place Anouk Pinto', 35.00, 6, 'parking_8.png'),
(NULL,'Place du Romain', 243, '2020-03-26', '86-1 Zoshicho', 31.40, 5, 'parking_9.png'),
(NULL,'Parking Saint-Bernard', 92, '2015-07-20', 'rue Schneider',04.30, 4, 'parking_10.png'),
(NULL,'Parking 11 Novembre', 394, '2013-03-19', 'Place du 11 Novembre', 5.10, 2, 'parking_11.png'),
(NULL,'Parking gare', 1297, '2003-09-06', '5 avenue Julien Humbey', 5.90, 1, 'parking_12.png'); (
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_ski | /type-ski/show |
GET | affiche les types de skis | retourne la vue show_type_ski.html |
add_type_ski | /type-ski/add |
GET | affiche le formulaire pour ajouter un type de ski | retourne la vue add_type_ski.html |
valid_add_type_ski | /type-ski/add |
POST | validation (soumission) du formulaire pour ajouter un type de ski | redirection sur la route /type-ski/show |
delete_type_ski | /type-ski/delete |
GET | suppression d’un type de ski | redirection sur la route /type-ski/show |
edit_type_ski | /type-ski/edit |
GET | affiche le formulaire pour modifier un type de ski | retourne la vue add_type_ski.html |
valid_edit_type_ski | /type-ski/edit |
POST | validation (soumission) du formulaire pour modifier un type de ski | redirection sur la route /type-ski/show |
show_ski | /ski/show |
GET | affiche les skis | retourne la vue show_ski.html |
add_ski | /ski/add |
GET | affiche le formulaire pour ajouter un ski | retourne la vue add_ski.html |
valid_add_ski | /ski/add |
POST | validation (soumission) du formulaire pour ajouter un ski | redirection sur la route /ski/show |
delete_ski | /ski/delete |
GET | suppression d’un ski | redirection sur la route /ski/show |
edit_ski | /ski/edit |
GET | affiche le formulaire pour modifier un ski | retourne la vue add_ski.html |
valid_edit_ski | /ski/edit |
POST | validation (soumission) du formulaire pour modifier un ski | redirection sur la route /ski/show |
filtre_ski | /ski/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_ski_filtre_show.html |
########################################################### Sujet 25
= [
typeSki 'id' : 1 ,'libelle':'Mini-ski'},
{'id' : 2 ,'libelle':'Ski de fond'},
{'id' : 3 ,'libelle':'Ski de piste'},
{'id' : 4 ,'libelle':'Ski de randonnée'},
{'id' : 5 ,'libelle':'Freestyle'},
{'id' : 6 ,'libelle':'Freeride'},
{
]= [
skis 'id' : 1 ,'modeleSki':'Wedze 500', 'dateAchat':'2019-05-20', 'etat':'Très Bon', 'prixAchat':'240', 'prixLocation':'50', 'taille':'172', 'typeSki_id':5, 'imageSki': 'wedze_500.jpg'},
{'id' : 2 ,'modeleSki':'Wedze 500 Slash 100', 'dateAchat':'2020-09-13', 'etat':'Neuf', 'prixAchat':'360', 'prixLocation':'75', 'taille':'184', 'typeSki_id':6, 'imageSki': 'wedze_500_slash_100.jpg'},
{'id' : 3 ,'modeleSki':'Inovix XC S 500', 'dateAchat':'2019-11-19', 'etat':'Assez Bon', 'prixAchat':'155', 'prixLocation':'30', 'taille':'205', 'typeSki_id':2, 'imageSki': 'inovix_xc_s_500.jpg'},
{'id' : 4 ,'modeleSki':'Rossignol Experience 80', 'dateAchat':'2018-09-12', 'etat':'Très Bon', 'prixAchat':'380', 'prixLocation':'38', 'taille':'174', 'typeSki_id':3, 'imageSki': 'rossignol_experience_80.jpg'},
{'id' : 5 ,'modeleSki':'Wedze Mountain touring MT85', 'dateAchat':'2018-07-11', 'etat':'Très Bon', 'prixAchat':'575', 'prixLocation':'56', 'taille':'176', 'typeSki_id':4, 'imageSki': 'wedze_mountain_touring_mt85.jpg'},
{'id' : 6 ,'modeleSki':'Atomic Redster X5', 'dateAchat':'2019-05-20', 'etat':'Assez Bon', 'prixAchat':'370', 'prixLocation':'32', 'taille':'177', 'typeSki_id':3, 'imageSki': 'atomic_redster_x5.png'},
{'id' : 7 ,'modeleSki':'Rossignol Experience 84', 'dateAchat':'2019-11-01', 'etat':'Bon', 'prixAchat':'540', 'prixLocation':'35', 'taille':'184', 'typeSki_id':3, 'imageSki': 'rossignol_experience_84.png'},
{'id' : 8 ,'modeleSki':'Salomon Max 8S', 'dateAchat':'2017-02-11', 'etat':'Très Bon', 'prixAchat':'500', 'prixLocation':'50', 'taille':'165', 'typeSki_id':3, 'imageSki': 'salomon_max_8s.png'},
{'id' : 9 ,'modeleSki':'Atomic Vantage 77 TI', 'dateAchat':'2019-05-20', 'etat':'Bon', 'prixAchat':'420', 'prixLocation':'41', 'taille':'156', 'typeSki_id':3, 'imageSki': 'atomic_vantage_77_ti.jpg'},
{'id' : 10 ,'modeleSki':'Dynastar Vertical Deer', 'dateAchat':'2017-11-25', 'etat':'Mauvais', 'prixAchat':'697', 'prixLocation':'22', 'taille':'180', 'typeSki_id':4, 'imageSki': 'dynastar_vertical_deer.jpg'},
{'id' : 11 ,'modeleSki':'Elan Ripstick 96', 'dateAchat':'2020-04-16', 'etat':'Très Bon', 'prixAchat':'490', 'prixLocation':'42', 'taille':'181', 'typeSki_id':6, 'imageSki': 'elan_ripstick_96.jpg'},
{'id' : 12 ,'modeleSki':'Salomon Distance M10 GW L90', 'dateAchat':'2019-08-30', 'etat':'Neuf', 'prixAchat':'299', 'prixLocation':'34', 'taille':'125', 'typeSki_id':1, 'imageSki': 'salomon_distance_m10_gw_l90.jpg'},
{'id' : 13 ,'modeleSki':'Rossignol Freeze Xpress GW', 'dateAchat':'2020-01-04', 'etat':'Très Bon', 'prixAchat':'269', 'prixLocation':'21', 'taille':'118', 'typeSki_id':1, 'imageSki': 'rossignol_freeze_xpress_gw.jpg'},
{ ]
archive des fichiers d’images de ce sujet
-- sujet 25 : ski / typeSki **
INSERT INTO types_ski (id_type_ski, libelle_type_ski)
VALUES (NULL,'Mini-ski'),
NULL,'Ski de fond'),
(NULL,'Ski de piste'),
(NULL,'Ski de randonnée'),
(NULL,'Freestyle'),
(NULL,'Freeride');
(
INSERT INTO ski (id_ski, modele_ski, date_achat_ski, etat_ski, prix_achat_ski, prix_location_ski, taille_ski, image_ski, id_type_ski)
VALUES (NULL,'Wedze 500', '2019-05-20', 'Très Bon', 240, 50, 172, 'wedze_500.jpg', 5),
NULL,'Wedze 500 Slash 100', '2020-09-13', 'Neuf', 360, 75, 184, 'wedze_500_slash_100.jpg', 6),
(NULL,'Inovix XC S 500', '2019-11-19', 'Assez Bon', 155, 30, 205, 'inovix_xc_s_500.jpg', 2),
(NULL,'Rossignol Experience 80', '2018-09-12', 'Très Bon', 380, 38, 174, 'rossignol_experience_80.jpg', 3),
(NULL,'Wedze Mountain touring MT85', '2018-07-11', 'Très Bon', 575, 56, 176, 'wedze_mountain_touring_mt85.jpg', 4),
(NULL,'Atomic Redster X5', '2019-05-20', 'Assez Bon', 370, 32, 177, 'atomic_redster_x5.png', 3),
(NULL,'Rossignol Experience 84', '2019-11-03', 'Bon', 540, 35, 184, 'rossignol_experience_84.png', 3),
(NULL,'Salomon Max 8S', '2017-02-11', 'Très Bon', 500, 50, 165, 'salomon_max_8s.png', 3),
(NULL,'Atomic Vantage 77 TI', '2019-05-20', 'Bon', 420, 41, 156, 'atomic_vantage_77_ti.jpg', 3),
(NULL,'Dynastar Vertical Deer', '2017-11-25', 'Mauvais', 697, 22, 180, 'dynastar_vertical_deer.jpg', 4),
(NULL,'Elan Ripstick 96', '2020-04-16', 'Très Bon', 490, 42, 181, 'elan_ripstick_96.jpg', 6),
(NULL,'Salomon Distance M10 GW L90', '2019-08-30', 'Neuf', 299, 34, 125, 'salomon_distance_m10_gw_l90.jpg', 1),
(NULL,'Rossignol Freeze Xpress GW', '2020-01-04', 'Très Bon', 269, 21, 118, 'rossignol_freeze_xpress_gw.jpg', 1);
(
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_layout | / |
GET | page d’accueil | retourne la vue layout.html |
show_matiere | /matiere/show |
GET | affiche les matieres | retourne la vue show_matiere.html |
add_matiere | /matiere/add |
GET | affiche le formulaire pour ajouter une matiere | retourne la vue add_matiere.html |
valid_add_matiere | /matiere/add |
POST | validation (soumission) du formulaire pour ajouter une matiere | redirection sur la route /matiere/show |
delete_matiere | /matiere/delete |
GET | suppression d’une matiere | redirection sur la route /matiere/show |
edit_matiere | /matiere/edit |
GET | affiche le formulaire pour modifier une matiere | retourne la vue edit_matiere.html |
valid_edit_matiere | /matiere/edit |
POST | validation (soumission) du formulaire pour modifier une matiere | redirection sur la route /matiere/show |
show_enseignant | /enseignant/show |
GET | affiche les enseignants | retourne la vue show_enseignant.html |
add_enseignant | /enseignant/add |
GET | affiche le formulaire ajouter pour les informations sur un enseignant | retourne la vue add_enseignant.html |
valid_add_enseignant | /enseignant/add |
POST | validation (soumission) du formulaire pour ajouter les informations sur un enseignant | redirection sur la route /enseignant/show |
delete_enseignant | /enseignant/delete |
GET | suppression d’un enseignant | redirection sur la route /enseignant/show |
edit_enseignant | /enseignant/edit |
GET | affiche le formulaire pour modifier les informations sur un enseignant | retourne la vue edit_enseignant.html |
valid_edit_enseignant | /enseignant/edit |
POST | validation (soumission) du formulaire pour modifier un enseignant | redirection sur la route /enseignant/show |
filtre_enseignant | /enseignant/filtre |
[GET] | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_enseignant_filtre_show.html |
########################################################### Sujet 26
= [
matiere 'id' : 1 ,'libelleMatiere':'Mathématiques'},
{'id' : 2 ,'libelleMatiere':'Francais'},
{'id' : 3 ,'libelleMatiere':'Physique-Chimie'},
{'id' : 4 ,'libelleMatiere':'Sport'}
{
]= [
enseignant 'id':1,'nomEnseignant':'Jean Sansouci', 'salaire':'3452', 'dateNaissance':'1965-12-17', 'statut':'Agregé', 'adresseAdministrative' :'Collège Jules Ferry', 'heureDeCours':'15', 'photo':'employe1.png', 'matiere_id':2},
{'id':2,'nomEnseignant':'Pascal Brian', 'salaire':'2754', 'dateNaissance':'1981-02-25', 'statut':'Agregé', 'adresseAdministrative' :'Lycée Condorcet', 'heureDeCours':'15', 'photo':'employe2.png', 'matiere_id':1},
{'id':3,'nomEnseignant':'Charle Auclair', 'salaire':'2966', 'dateNaissance':'1977-06-05', 'statut':'Agregé', 'adresseAdministrative' :'Lycée Nelson Mandela', 'heureDeCours':'15', 'photo':'employe3.png', 'matiere_id':2},
{'id':4,'nomEnseignant':'Maxime Chabot', 'salaire':'1772', 'dateNaissance':'1972-10-16', 'statut':'PEGC', 'adresseAdministrative' :'Collège Guynemer', 'heureDeCours':'23', 'photo':'employe4.png', 'matiere_id':1},
{'id':5,'nomEnseignant':'Neil Dandonneau', 'salaire':'1498', 'dateNaissance':'1975-07-22', 'statut':'PEGC', 'adresseAdministrative' :'Collège Guynemer', 'heureDeCours':'21', 'photo':'employe5.png' , 'matiere_id':1},
{'id':6,'nomEnseignant':'Patric Barteaux', 'salaire':'1945', 'dateNaissance':'1966-10-03', 'statut':'PEGC', 'adresseAdministrative' :'Collège Albert Camus', 'heureDeCours':'23', 'photo':'employe6.png', 'matiere_id':3},
{'id':7,'nomEnseignant':'Alexia Tardif', 'salaire':'1290', 'dateNaissance':'1968-06-12', 'statut':'Contractuel', 'adresseAdministrative' :'Lycée Condorcet', 'heureDeCours':'18', 'photo':'employe7.png', 'matiere_id':3},
{'id':8,'nomEnseignant':'Sylvie Crête', 'salaire':'1254', 'dateNaissance':'1973-07-18', 'statut':'Contractuel', 'adresseAdministrative' :'Lycée Nelson Mandela', 'heureDeCours':'19', 'photo':'employe8.png', 'matiere_id':3},
{'id':9,'nomEnseignant':'Minette Migneault', 'salaire':'2241', 'dateNaissance':'1982-09-06', 'statut':'Certifié', 'adresseAdministrative' :'Collège Guynemer', 'heureDeCours':'18', 'photo':'employe10.png', 'matiere_id':4},
{'id':10,'nomEnseignant':'Françoise Lefèbvre', 'salaire':'2621', 'dateNaissance':'1974-09-29', 'statut':'Certifié', 'adresseAdministrative' :'Collège Jules Ferry', 'heureDeCours':'18', 'photo':'employe11.png', 'matiere_id':4}
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 26 : enseignant / matiere **
INSERT INTO matiere (id_matiere, libelle_matiere) VALUES
NULL, 'Mathématiques'),
(NULL, 'Français'),
(NULL, 'Physique-Chimie'),
(NULL, 'Sport');
(
INSERT INTO enseignant (id_enseignant, nom_enseignant, salaire, date_naissance, statut, adresse_administrative, nb_heure_cours, photo , matiere_id)
VALUES
NULL , 'Jean Sansouci', 3452.00, '1965-12-17', 'Agregé', 'Collège Jules Ferry', 15, 'employe1.png' , 2),
(NULL , 'Pascal Brian', 2754.00, '1981-02-25', 'Agregé', 'Lycée Condorcet', 15, 'employe2.png', 1),
(NULL , 'Charle Auclair', 2966.00, '1977-06-05', 'Agregé', 'Lycée Nelson Mandela', 15, 'employe3.png', 2),
(NULL , 'Maxime Chabot', 1772.00, '1972-10-16', 'PEGC', 'Collège Guynemer', 23, 'employe4.png', 1),
(NULL , 'Neil Dandonneau', 1498.00, '1975-07-22', 'PEGC', 'Collège Guynemer', 21, 'employe5.png', 1),
(NULL , 'Patric Barteaux', 1945.00, '1966-10-03', 'PEGC', 'Collège Albert Camus', 23, 'employe6.png', 3),
(NULL , 'Alexia Tardif', 1290.00, '1968-06-12', 'Contractuel', 'Lycée Condorcet', 18, 'employe7.png', 3),
(NULL , 'Sylvie Crête', 1254.00, '1973-07-18', 'Contractuel', 'Lycée Nelson Mandela', 19, 'employe8.png', 3),
(NULL , 'Minette Migneault', 2241.00, '1982-09-06', 'Certifié', 'Collège Guynemer', 18, 'employe10.png', 4),
(NULL , 'Françoise Lefèbvre', 2621.00, '1974-09-29', 'Certifié','Collège Jules Ferry', 18, 'employe11.png', 4);
(
éléments à respecter dans le fichier app.py
Nom fonction | Route | Méthode | description | action (réponse HTTP) |
---|---|---|---|---|
show_accueil | / |
GET | page d’accueil | retourne la vue layout.html |
show_type_foret | /type-foret/show |
GET | affiche les types de forets | retourne la vue show_type_foret.html |
add_type_foret | /type-foret/add |
GET | affiche le formulaire pour ajouter un type de foret | retourne la vue add_type_foret.html |
valid_add_type_foret | /type-foret/add |
POST | validation (soumission) du formulaire pour ajouter un type de foret | redirection sur la route /type-foret/show |
delete_type_foret | /type-foret/delete |
GET | suppression d’un type de foret | redirection sur la route /type-foret/show |
edit_type_foret | /type-foret/edit |
GET | affiche le formulaire pour modifier un type de foret | retourne la vue add_type_foret.html |
valid_edit_type_foret | /type-foret/edit |
POST | validation (soumission) du formulaire pour modifier un type de foret | redirection sur la route /type-foret/show |
show_foret | /foret/show |
GET | affiche les forets | retourne la vue show_foret.html |
add_foret | /foret/add |
GET | affiche le formulaire pour ajouter une foret | retourne la vue add_foret.html |
valid_add_foret | /foret/add |
POST | validation (soumission) du formulaire pour ajouter une foret | redirection sur la route /foret/show |
delete_foret | /foret/delete |
GET | suppression d’une foret | redirection sur la route /foret/show |
edit_foret | /foret/edit |
GET | affiche le formulaire pour modifier une foret | retourne la vue add_foret.html |
valid_edit_foret | /foret/edit |
POST | validation (soumission) du formulaire pour modifier une foret | redirection sur la route /foret/show |
filtre_foret | /foret/filtre |
GET | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_foret_filtre_show.html |
########################################################### Sujet 27
= [
typesForet 'id' : 1 ,'libelle':'Tropicale', 'photo':'tropicale.jpeg'},
{'id' : 2 ,'libelle':'Taiga', 'photo':'taiga.jpg'},
{'id' : 3 ,'libelle':'Jungle', 'photo':'jungle.jpg'},
{'id' : 4 ,'libelle':'Sombre', 'photo':'sombre.jpg'},
{'id' : 5 ,'libelle':'Amazonienne', 'photo':'amazonie.jpg'},
{'id' : 6 ,'libelle':'Tempéré', 'photo':'tempere.jpg'},
{
]
= [
forets 'id' : '1' ,'surface':'1500', 'dateRelevee':'2020-02-02', 'localisation':'Bangui', 'nbArbreAre':'5', 'typeForet':'1', 'coutEntretien':'20.5', 'photo':'img_bangui.png' },
{'id' : '2', 'surface':'6000', 'dateRelevee':'2019-01-24', 'localisation':'Deggendorf', 'nbArbreAre':'6', 'typeForet':'6', 'coutEntretien':'80.3', 'photo':'img_Deggendorf.png' },
{'id' : '3', 'surface':'7800', 'dateRelevee':'2013-08-11', 'localisation':'Manaus', 'nbArbreAre':'7', 'typeForet':'5', 'coutEntretien':'125.25', 'photo':'img_Manaus.png' },
{'id' : '4', 'surface':'30', 'dateRelevee':'2015-09-12', 'localisation':'Tomsk', 'nbArbreAre':'8', 'typeForet':'2', 'coutEntretien':'30.2', 'photo':'img_Tomsk.png' },
{'id' : '5', 'surface':'340', 'dateRelevee':'2020-10-23', 'localisation':'Boende', 'nbArbreAre':'9', 'typeForet':'3', 'coutEntretien':'80.6', 'photo':'img_Boende.png' },
{'id' : '6', 'surface':'1500', 'dateRelevee':'2020-09-01', 'localisation':'Aokigahara', 'nbArbreAre':'10', 'typeForet':'Sombre', 'coutEntretien':'20.5', 'photo':'img_Aokigahara.png' },
{'id' : '7', 'surface':'74', 'dateRelevee':'2008-08-15', 'localisation':'Blair', 'nbArbreAre':'9', 'typeForet':'Sombre', 'coutEntretien':'43.2', 'photo':'img_Blair.png' },
{'id' : '8', 'surface':'25000', 'dateRelevee':'2017-02-14', 'localisation':'Jakarta', 'nbArbreAre':'8', 'typeForet':'1', 'coutEntretien':'13', 'photo':'img_Jakarta.png' },
{'id' : '9', 'surface':'5300', 'dateRelevee':'2018-03-23', 'localisation':'Bussang', 'nbArbreAre':'7', 'typeForet':'2', 'coutEntretien':'20.7', 'photo':'img_Bussang.png' },
{'id' : '10' ,'surface':'2000', 'dateRelevee':'2015-01-30', 'localisation':'Kupio', 'nbArbreAre':'6', 'typeForet':'2', 'coutEntretien':'20.7', 'photo':'img_Kupio.png'}
{
]
archive des fichiers d’images de ce sujet
-- sujet 27 : foret / type_foret --
INSERT INTO type_foret(id_type_foret, libelle_type, image) VALUES
NULL ,'Tropicale','tropicale.jpeg'), -- 1
(NULL ,'Taiga','taiga.jpg'), -- 2
(NULL ,'Jungle','jungle.jpg'), -- 3
(NULL ,'Sombre','sombre.jpg'), -- 4
(NULL ,'Amazonienne','amazonie.jpg'), -- 5
(NULL ,'Tempéré','tempere.jpg'); -- 6
(
INSERT INTO foret (id_foret, surface,date_relevee,localisation,nb_arbre_are,type_foret_id,cout_entretien, photo) VALUES
NULL , 1500, '2020-02-02', 'Bangui', 5, 1, 20.5, 'img_bangui.png'),
(NULL , 6000, '2019-01-24', 'Deggendorf', 6, 6, 80.3, 'img_Deggendorf.png' ),
(NULL , 7800, '2013-08-11', 'Manaus', 7, 5, 125.25, 'img_Manaus.png' ),
(NULL , 300, '2015-09-12', 'Tomsk', 8, 2, 30.2, 'img_Tomsk.png' ),
(NULL , 340, '2020-10-23', 'Boende', 9, 3, 80.6, 'img_Boende.png' ),
(NULL , 1500, '2020-09-01', 'Aokigahara', 10, 4, 20.5, 'img_Aokigahara.png' ),
(NULL , 740, '2008-08-15', 'Blair', 9, 4, 43.2, 'img_Blair.png' ),
(NULL , 25000, '2017-02-14', 'Jakarta', 8, 1, 13.1, 'img_Jakarta.png' ),
(NULL , 5300, '2018-03-23', 'Bussang', 7, 6, 20.6, 'img_Bussang.png' ),
(NULL , 2000, '2015-01-30', 'Kupio', 6, 2, 20.7, 'img_Kupio.png');
(