é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-usine/show |
GET | affiche les types d’employés | retourne la vue show_departement.html |
add_departement | /departement-usine/add |
GET | affiche le formulaire pour ajouter un département | retourne la vue add_departement.html |
valid_add_departement | /departement-usine/add |
POST | validation (soumission) du formulaire pour ajouter un département | redirection sur la route /departement-usine/show |
delete_departement | /departement-usine/delete |
GET | suppression d’un département | redirection sur la route /departement-usine/show |
edit_departement | /departement-usine/edit |
GET | affiche le formulaire pour modifier un département | retourne la vue edit_departement.html |
valid_edit_departement | /departement-usine/edit |
POST | validation (soumission) du formulaire pour modifier un département | redirection sur la route /departement-usine/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
= [
departementsUsine '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 développement', '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_usine / employe **
# sujet
INSERT INTO departement_usine (id_departement, nom_departement, logo)
VALUES
NULL, 'Production','logo_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-activite/show |
GET | affiche les localisations | retourne la vue show_localisation.html |
add_localisation | /localisation-activite/add |
GET | affiche le formulaire pour ajouter une localisation | retourne la vue add_localisation.html |
valid_add_localisation | /localisation-activite/add |
POST | validation (soumission) du formulaire pour ajouter une localisation | redirection sur la route
/localisation-activite/show |
delete_localisation | /localisation-activite/delete |
GET | suppression d’une localisation | redirection sur la route
/localisation-activite/show |
edit_localisation | /localisation-activite/edit |
GET | affiche le formulaire pour modifier une localisation | retourne la vue edit_localisation.html |
valid_edit_localisation | /localisation-activite/edit |
POST | validation (soumission) du formulaire pour modifier une localisation | redirection sur la route
/localisation-activite/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 |
=[
localisationsActivite'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_activite
INSERT INTO localisation_activite (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, image) 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-foot/show |
GET | affiche les types d’joueurs | retourne la vue show_club.html |
add_club | /club-foot/add |
GET | affiche le formulaire pour ajouter un club | retourne la vue add_club.html |
valid_add_club | /club-foot/add |
POST | validation (soumission) du formulaire pour ajouter un club | redirection sur la route /club-foot/show |
delete_club | /club-foot/delete |
GET | suppression d’un club | redirection sur la route /club-foot/show |
edit_club | /club-foot/edit |
GET | affiche le formulaire pour modifier un club | retourne la vue edit_club.html |
valid_edit_club | /club-foot/edit |
POST | validation (soumission) du formulaire pour modifier un club | redirection sur la route /club-foot/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
=[
clubsFoot'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_foot(id_club, 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-voiture/show |
GET | affiche les categories | retourne la vue show_categorie.html |
add_categorie | /categorie-voiture/add |
GET | affiche le formulaire pour ajouter une categorie | retourne la vue add_categorie.html |
valid_add_categorie | /categorie-voiture/add |
POST | validation (soumission) du formulaire pour ajouter une categorie | redirection sur la route /categorie-voiture/show |
delete_categorie | /categorie-voiture/delete |
GET | suppression d’une categorie | redirection sur la route /categorie-voiture/show |
edit_categorie | /categorie-voiture/edit |
GET | affiche le formulaire pour modifier une categorie | retourne la vue edit_categorie.html |
valid_edit_categorie | /categorie-voiture/edit |
POST | validation (soumission) du formulaire pour modifier une categorie | redirection sur la route /categorie-voiture/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
=[
categoriesVoitures'id':1,'libelleCategorie':'berline', 'catalogue':'1', 'logo':'logo_berline.png'},
{'id':2,'libelleCategorie':'break', 'catalogue':'1', 'logo':'logo_break.png'},
{'id':3,'libelleCategorie':'suv', 'catalogue':'1', 'logo':'logo_suv.png'},
{'id':4,'libelleCategorie':'monospace', 'catalogue':'2', 'logo':'logo_monospce.png'},
{'id':5,'libelleCategorie':'utilitaire', 'catalogue':'3', 'logo':'logo_utilitaire.png'},
{'id':6,'libelleCategorie':'citadine', 'catalogue':'1', 'logo':'logo_citadine.png'},
{'id':7,'libelleCategorie':'autre', 'catalogue':'3', 'logo':'logo_autre.png'}
{
]
=[
voitures'id':1,'nomVoiture':'clio 3', 'dateLancement':'2010-1-1', 'prixVoiture':'5000', 'categorie_id':1, 'puissance':4, 'photo':'clio3.jpg'},
{'id':2,'nomVoiture':'BMW Serie 6 Gran Coupe' , 'dateLancement':'2012-01-09' , 'prixVoiture':'118400', 'categorie_id':1, 'puissance':34, 'photo':'bmws6.jpg'},
{'id':3,'nomVoiture':'Mercedes Classe S' , 'dateLancement':'2014-09-15' , 'prixVoiture':'181000', 'categorie_id':1 , 'puissance':50, 'photo':'mercedesclasseS.jpg'},
{'id':4,'nomVoiture': 'Audi RS6' , 'dateLancement':'2013-11-07' , 'prixVoiture':'120600', 'categorie_id':2, 'puissance':64, 'photo':'audiRS6.jpg'},
{'id':5,'nomVoiture': 'Porsche Panamera' , 'dateLancement':'2013-04-25' , 'prixVoiture':'123965' , 'categorie_id':2 , 'puissance':35, 'photo':'porschePanamera.jpg'},
{'id':6,'nomVoiture': 'Range Rover Evoque' , 'dateLancement':'2014-03-10' , 'prixVoiture':'50700' , 'categorie_id':3 , 'puissance':19, 'photo':'rrEvoque.jpg'},
{'id':7,'nomVoiture': 'Citroen C4 Picasso' , 'dateLancement':'2013-06-04' , 'prixVoiture':'31150' , 'categorie_id':4 , 'puissance':8, 'photo':'c4Picasso.jpg'},
{'id':8,'nomVoiture': 'Ford S-Max' , 'dateLancement':'2012-08-28' , 'prixVoiture':'38450' , 'categorie_id':4 , 'puissance':8, 'photo':'sMax.jpg'},
{'id':9,'nomVoiture': 'Fiat Ducato' , 'dateLancement':'2009-07-02' , 'prixVoiture':'24575' , 'categorie_id':5 , 'puissance':9, 'photo':'fiatDucato.jpg'},
{'id':10,'nomVoiture': 'Renault Kangoo' , 'dateLancement':'2008-05-31' , 'prixVoiture':'19750' , 'categorie_id':5 , 'puissance':7, 'photo':'kangoo.jpg'},
{'id':11,'nomVoiture': 'Opel Adam' , 'dateLancement':'2009-12-15' , 'prixVoiture':'18900' , 'categorie_id':6 , 'puissance':8, 'photo':'opelAdam.jpg'},
{'id':12,'nomVoiture': 'Citroen DS3' , 'dateLancement':'2010-02-17' , 'prixVoiture':'19490' , 'categorie_id':6 , 'puissance':9, 'photo':'DS3.jpg'},
{'id':13,'nomVoiture': 'Dodge RAM 1500 V8 HEMI' , 'dateLancement':'2015-03-26' , 'prixVoiture':'55800' , 'categorie_id':7 , 'puissance':30, 'photo':'DodgeRAM.jpg'}
{ ]
archive des fichiers d’images de ce sujet
-- # sujet 4 : voiture / categorie_voiture **
INSERT INTO categorie_voiture (id_categorie , libelle_categorie, catalogue, logo) VALUES
NULL, 'berline','1','logo_berline.png'),
(NULL, 'break','1','logo_break.png'),
(NULL, 'suv','1','logo_suv.png'),
(NULL, 'monospace','2','logo_monospace.png'),
(NULL, 'utilitaire','3','logo_utilitaire.png'),
(NULL, 'citadine','1','logo_citadine.png'),
(NULL, 'autre','3','logo_autre.png');
(
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', 'categorieType':'1' },
{'id':2,'nomTypePlat':'plat principal', 'categorieType':'2'},
{'id':3,'nomTypePlat':'dessert', 'categorieType':'3'},
{'id':4,'nomTypePlat':'plat unique', 'categorieType':'4'}
{
]=[
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'},
{'id':7,'nomPlat':'salade césar' , 'prixPlat':5 , 'dureePreparation':'10' , 'dateCreation':'2023-04-08' , 'description':'légumes de saison' , 'typePlat_id':1, 'photo':'salade_cezar.jpg'},
{'id':8,'nomPlat':'salade salade de fruit' , 'prixPlat':6 , 'dureePreparation':'15' , 'dateCreation':'2023-01-08' , 'description':'fruit de saison' , 'typePlat_id':3, 'photo':'salade_de_fruit.jpg'},
{'id':9,'nomPlat':'salade de pâte ensoleillée' , 'prixPlat':15 , 'dureePreparation':'15' , 'dateCreation':'2023-02-02' , 'description':'légumes de saison et pâtes' , 'typePlat_id':4, 'photo':'salade_de_pate_ensoleillee.jpg'},
{'id':10,'nomPlat':'salade orange miel' , 'prixPlat':7 , 'dureePreparation':'13' , 'dateCreation':'2023-01-08' , 'description':'fruit de saison' , 'typePlat_id':3, 'photo':'salade_orange_miel.jpg'}
{'id':11,'nomPlat':'salade petit épeautre' , 'prixPlat':7 , 'dureePreparation':'12' , 'dateCreation':'2023-01-08' , 'description':'petit épeautre local et légume de saison' , 'typePlat_id':'4', 'photo':'salade_petit_epeautre.jpg'}
{'id':12,'nomPlat':'salade savoyarde' , 'prixPlat':5 , 'dureePreparation':'10' , 'dateCreation':'2023-04-08' , 'description':'légumes de saison' , 'typePlat_id':1, 'photo':'salade_savoyarde.jpg'}
{
]
;
archive des fichiers d’images de ce sujet
-- sujet 5 : plat / type_Plat **
INSERT INTO type_plat (id_type_plat, nom_type_plat, categorie_type) VALUES
NULL, 'entrée' ,1),
(NULL, 'plat principal' , 2),
(NULL, 'dessert' , 3),
(NULL, 'plat unique' ,4);
(
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,'bûche glacée',7,7,'2014-04-08', 'glace 3 saveurs', 3, 'buche_glacee.jpg'),
(NULL,'salade césar' , 5 , 10 , '2023-04-08' , 'légumes de saison' , 1, 'salade_cezar.jpg'),
(NULL,'salade salade de fruit' , 6 , 15 , '2023-01-08' , 'fruit de saison' , 3, 'salade_de_fruit.jpg'),
(NULL,'salade de pâte ensoleillée' , 15 , '15' , '2023-02-02' , 'légumes de saison et pâtes' , 4, 'salade_de_pate_ensoleillee.jpg'),
(NULL,'salade orange miel' , 7 , 13 , '2023-01-08' , 'fruit de saison' , 3, 'salade_orange_miel.jpg'),
(NULL,'salade petit épeautre' , 7 , 12 , '2023-01-08' , 'petit épeautre local et légume de saison' , 4, 'salade_petit_epeautre.jpg'),
(NULL,'salade savoyarde' , 5 , 10 , '2023-04-08' , 'légumes de saison' , 1, 'salade_savoyarde.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-film/show |
GET | affiche les genres | retourne la vue show_genre.html |
add_genre | /genre-film/add |
GET | affiche le formulaire pour ajouter un genre | retourne la vue add_genre.html |
valid_add_genre | /genre-film/add |
POST | validation (soumission) du formulaire pour ajouter un genre | redirection sur la route /genre-film/show |
delete_genre | /genre-film/delete |
GET | suppression d’un genre | redirection sur la route /genre-film/show |
edit_genre | /genre-film/edit |
GET | affiche le formulaire pour modifier un genre | retourne la vue edit_genre.html |
valid_edit_genre | /genre-film/edit |
POST | validation (soumission) du formulaire pour modifier un genre | redirection sur la route /genre-film/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
=[
genresFilms'id':1,'libelleGenre':'Comedie', 'logo':'logo_comedie.png'},
{'id':2,'libelleGenre':'Science-Fiction', 'logo':'logo_science_fiction.png'},
{'id':3,'libelleGenre':'Action', 'logo':'logo_action.png'},
{'id':4,'libelleGenre':'Fantasy', 'logo':'logo_fantasy.png'},
{'id':5,'libelleGenre':'Animation', 'logo':'logo_animation.png'},
{'id':6,'libelleGenre':'Horreur', 'logo':'logo_horreur.png'}
{
]
= [
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_film **
INSERT INTO genre_film(id_genre,libelle_genre, logo) VALUES
NULL,'Comedie', 'logo_comedie.png'),
(NULL ,'Science-fiction', 'logo_science_fiction.png'),
(NULL ,'Action', 'logo_action.png'),
(NULL ,'Fantasy', 'logo_fantasy.png'),
(NULL ,'Animation', 'logo_animation.png'),
(NULL ,'Horreur', 'logo_horreur.png');
(
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','logo':'logo_entretien.png'},
{'id':2,'libelleType':'carrosserie','logo':'logo_carrosserie.png'},
{'id':3,'libelleType':'mecanique','logo':'mecanique.png'},
{'id':4,'libelleType':'autre','logo':'autre.png'}
{
]
=[
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, logo) VALUES
NULL, 'entretien', 'logo_entretien.png'),
(NULL, 'carrosserie', 'logo_entretien.png'),
(NULL, 'mecanique', 'logo_entretien.png'),
(NULL, 'autre', 'logo_autre.png');
(
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, 'titreBd':'La serpe d or', 'tome':1, 'dateParution':'2005-10-09', 'prixBd':'7.5', 'image':'bd1.png'},
{'id':2,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titreBd':'Asterix et les Goths', 'tome':'2', 'dateParution': '2011-10-10', 'prixBd':'10', 'image':'bd2.png'},
{'id':3,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titreBd':'Asterix et les gladiateurs', 'tome':'3', 'dateParution': '2004-10-11', 'prixBd':'5', 'image':'bd3.png'},
{'id':4,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titreBd':'Tour de Gaule d astérix', 'tome':'4', 'dateParution': '2005-09-10', 'prixBd':'8.5', 'image':'bd20.png'},
{'id':5,'serieBD':'Astérix et Obélix', 'auteur_id':1, 'titreBd':'La zizanie', 'tome':'15', 'dateParution': '2014-09-10', 'prixBd':'15', 'image':'bd4.png'},
{'id':6,'serieBD':'Boule et Bill', 'auteur_id':2, 'titreBd':'60 gags de Boule et Bill', 'tome':1, 'dateParution':'2010-10-11', 'prixBd':'10', 'image':'bd5.png'},
{'id':7,'serieBD':'Boule et Bill', 'auteur_id':2, 'titreBd':'Papa maman, Boule et... moi', 'tome':'8', 'dateParution':'2005-10-11', 'prixBd':'10.5', 'image':'bd6.png'},
{'id':8,'serieBD':'Boule et Bill', 'auteur_id':2, 'titreBd':'Une vie de chien !', 'tome':'9', 'dateParution':'2012-10-11', 'prixBd':'20', 'image':'bd7.png'},
{'id':9,'serieBD':'Boule et Bill', 'auteur_id':2, 'titreBd':'Attention chien marrant !', 'tome':'10', 'dateParution':'2013-10-11', 'prixBd':'10', 'image':'bd8.png'},
{'id':10,'serieBD':'Boule et Bill', 'auteur_id':2, 'titreBd':'Jeux de Bill', 'tome':'11', 'dateParution':'2014-10-11', 'prixBd':'20', 'image':'bd9.png'},
{'id':11,'serieBD':'Tintin', 'auteur_id':3, 'titreBd':'Tintin au pays des Soviets', 'tome':'1', 'dateParution':'2005-10-11', 'prixBd':'10', 'image':'bd10.png'},
{'id':12,'serieBD':'Tintin', 'auteur_id':3, 'titreBd':'Tintin au Congo', 'tome':'2', 'dateParution':'2011-07-11', 'prixBd':'10', 'image':'bd11.png'},
{'id':13,'serieBD':'Tintin', 'auteur_id':3, 'titreBd':'Tintin en Amérique', 'tome':'3', 'dateParution':'2012-10-11', 'prixBd':'10', 'image':'bd12.png'},
{'id':14,'serieBD':'Tintin', 'auteur_id':3, 'titreBd':'Les Cigares du pharaon', 'tome':'4', 'dateParution':'2005-10-13', 'prixBd':'20', 'image':'bd13.png'},
{'id':15,'serieBD':'Tintin', 'auteur_id':3, 'titreBd':'Le lotus bleu', 'tome':'5', 'dateParution':'2014-10-13', 'prixBd':'20', 'image':'bd14.png'},
{'id':16,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titreBd':'Gare aux gaffes', 'tome':1, 'dateParution':'2010-12-03', 'prixBd':'10', 'image':'bd15.png'},
{'id':17,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titreBd':'Gala de gaffes', 'tome':'2', 'dateParution':'2012-09-06', 'prixBd':'10', 'image':'bd16.png'},
{'id':18,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titreBd':'Gaffes à gogo', 'tome':'3', 'dateParution':'2014-08-06', 'prixBd':'8', 'image':'bd17.png'},
{'id':19,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titreBd':'Gaffes en gros', 'tome':'4', 'dateParution':'2013-04-06', 'prixBd':'10', 'image':'bd18.png'},
{'id':20,'serieBD':'Gaston Lagaffe', 'auteur_id':4, 'titreBd':'Les gaffes d un gars gonflé', 'tome':'5', 'dateParution':'2005-03-06', 'prixBd':'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-info/show |
GET | affiche les types d’ordinateurs | retourne la vue show_salle.html |
add_salle | /salle-info/add |
GET | affiche le formulaire pour ajouter une salle | retourne la vue add_salle.html |
valid_add_salle | /salle-info/add |
POST | validation (soumission) du formulaire pour ajouter une salle | redirection sur la route /salle-info/show |
delete_salle | /salle-info/delete |
GET | suppression d’une salle | redirection sur la route /salle-info/show |
edit_salle | /salle-info/edit |
GET | affiche le formulaire pour modifier une salle | retourne la vue edit_salle.html |
valid_edit_salle | /salle-info/edit |
POST | validation (soumission) du formulaire pour modifier une salle | redirection sur la route /salle-info/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
=[
sallesInfo'id':1,'nomSalle':'Alpha', 'etage':1 },
{'id':2,'nomSalle':'Mac', 'etage':2 },
{'id':3,'nomSalle':'DEC', 'etage':1 }
{
]
=[
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_info **
INSERT INTO salle_info (id_salle, nom_salle, etage) VALUES
NULL, 'Alpha',1),
(NULL, 'Mac',2),
(NULL, 'DEC',1);
(
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 |
=[
typeCommercants'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', 'budget':'déplacement'},
{'id':2,'libelleCategorie':'Carburant', 'budget':'déplacement'},
{'id':3,'libelleCategorie':'Repas', 'budget':'hébergement'},
{'id':4,'libelleCategorie':'Hébergement', 'budget':'hébergement'}
{
]=[
depenses'id':1, 'destinataireDepense':'Service d\'autoroute Vinci','montant':'35','description':'Péages Belfort-Lyon', 'dateDepense':'2014-04-20' , 'categorieDepense_id':1, 'image':'img_depense_1.png'},
{'id':2, 'destinataireDepense':'Organisation ACD','montant':'410.47','description':'Comité de direction', 'dateDepense':'2014-07-03' , 'categorieDepense_id':3, 'image':'img_depense_2.png'},
{'id':3, 'destinataireDepense':'intendance UTBM','montant':'120','description':'forum étudiants', 'dateDepense':'2014-08-18', 'categorieDepense_id':4, 'image':'img_depense_4.png'},
{'id':4, 'destinataireDepense':'Autoroute Ouest','montant':'25.5','description':'Péages Paris-Nantes', 'dateDepense':'2014-07-28' , 'categorieDepense_id':1, 'image':'img_depense_3.png'},
{'id':5, 'destinataireDepense':'TotalEnergies','montant':'45','description':'Sans plomb 95 35L', 'dateDepense':'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', 'dateDepense':'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', 'dateDepense':'2014-12-07' , 'categorieDepense_id':1, 'image':'img_depense_1.png'},
{'id':8, 'destinataireDepense':'TotalEnergies','montant':'75','description':'Diezel 60L', 'dateDepense':'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, budget)VALUES
NULL,'Autoroute', 'déplacement'),
(NULL,'Carburant', 'déplacement'),
(NULL,'Repas', 'hébergement'),
(NULL,'Hébergement', 'hébergement');
(
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-representation/show |
GET | affiche les spectacles | retourne la vue show_spectacle.html |
add_spectacle | /spectacle-representation/add |
GET | affiche le formulaire pour ajouter un spectacle | retourne la vue add_spectacle.html |
valid_add_spectacle | /spectacle-representation/add |
POST | validation (soumission) du formulaire pour ajouter un spectacle | redirection sur la route
/spectacle-representation/show |
delete_spectacle | /spectacle-representation/delete |
GET | suppression d’un spectacle | redirection sur la route
/spectacle-representation/show |
edit_spectacle | /spectacle-representation/edit |
GET | affiche le formulaire pour modifier un spectacle | retourne la vue edit_spectacle.html |
valid_edit_spectacle | /spectacle-representation/edit |
POST | validation (soumission) du formulaire pour modifier un spectacle | redirection sur la route
/spectacle-representation/show |
filtre_spectacle | /spectacle-representation/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'},
{
]
=[
spectaclesRepresentations'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_representation / 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_representation (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-ski/show |
GET | affiche les stations | retourne la vue show_station.html |
add_station | /station-ski/add |
GET | affiche le formulaire pour ajouter une station | retourne la vue add_station.html |
valid_add_station | /station-ski/add |
POST | validation (soumission) du formulaire pour ajouter une station | redirection sur la route /station-ski/show |
delete_station | /station-ski/delete |
GET | suppression d’une station | redirection sur la route /station-ski/show |
edit_station | /station-ski/edit |
GET | affiche le formulaire pour modifier une station | retourne la vue edit_station.html |
valid_edit_station | /station-ski/edit |
POST | validation (soumission) du formulaire pour modifier une station | redirection sur la route /station-ski/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
=[
stationsSki'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_ski **
INSERT INTO station_ski(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 ,'libelleVetement': 'Pantalon','refTaille': '1'},
{'id' : 2 ,'libelleVetement':'Short','refTaille': '1'},
{'id' : 3 ,'libelleVetement':'Chemise','refTaille': '2'},
{'id' : 4 ,'libelleVetement':'Veste','refTaille': '2'},
{'id' : 5 ,'libelleVetement':'Tee-Shirt','refTaille': '2'},
{'id' : 6 ,'libelleVetement':'Chaussette','refTaille': '3'},
{'id' : 7 ,'libelleVetement':'Sous-vetements','refTaille': '1'}
{
]
=[
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, ref_taille) VALUES
NULL,'Pantalon',1),
(NULL,'Short',1),
(NULL,'Chemise',2),
(NULL,'Veste',2),
(NULL,'Tee-Shirt',2),
(NULL,'Chaussette',3),
(NULL,'Sous-vetements',1);
(
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 ,'libelleType':'mecanique'},
{'id' : 2 ,'libelleType':'jardin'},
{'id' : 3 ,'libelleType':'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.jpg' },
{'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':3, '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, libelle_type)
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.jpg'),
(NULL,'tuyau', 250, '2019-09-09', 0, 2, 20.50, 'tuyau.png'),
(NULL,'chalumeau', 1500, '2019-08-09', 0, 3, 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-region/show |
GET | affiche les departements | retourne la vue show_departement.html |
add_departement | /departement-region/add |
GET | affiche le formulaire pour ajouter un departement | retourne la vue add_departement.html |
valid_add_departement | /departement-region/add |
POST | validation (soumission) du formulaire pour ajouter un departement | redirection sur la route /departement-region/show |
delete_departement | /departement-region/delete |
GET | suppression d’un departement | redirection sur la route /departement-region/show |
edit_departement | /departement-region/edit |
GET | affiche le formulaire pour modifier un departement | retourne la vue edit_departement.html |
valid_edit_departement | /departement-region/edit |
POST | validation (soumission) du formulaire pour modifier un departement | redirection sur la route /departement-region/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
=[
departementsRegion'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_region **
-- DEPARTEMENT :
INSERT INTO departement_region(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,'libelleEpoque': 'Renaissance', 'anneeDebut':'1700', 'anneeFin':'1850'},
{'id': 2,'libelleEpoque': 'Temps Modernes', 'anneeDebut':'1492', 'anneeFin':'1789'},
{'id': 3,'libelleEpoque': 'Contemporain', 'anneeDebut':'1800', 'anneeFin':'2000'},
{'id': 4,'libelleEpoque': 'Moyen-Age', 'anneeDebut':'476', 'anneeFin':'1492'}
{
]
= [
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, annee_debut, annee_fin) VALUES
NULL, 'Renaissance',1700,1850)
(NULL,'Temps Modernes',1492,1789)
,(NULL, 'Contemporain', 1800, 2000)
,(NULL, 'Moyen-Age', 476, 1492);
,(
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,'libelleType':'Ballon'},
{'id':2,'libelleType':'Raquette'},
{'id':3,'libelleType':'Combat'},
{'id':4,'libelleType':'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_type) 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', 'prixM3':'401','surfacePlantation':'5','localisation':'Doubs', 'type_arbre_id' :1, 'image':'sapin.jpg'},
{'id':2,'nomArbre':'pin rouge', 'hauteurMaxi':'35', 'datePlantation':'2020-02-20', 'prixM3':'900','surfacePlantation':'3','localisation':'Jura', 'type_arbre_id' :1, 'image':'pin.jpeg'},
{'id':3,'nomArbre':'pommier', 'hauteurMaxi':'30', 'datePlantation':'2019-08-05', 'prixM3':'300','surfacePlantation':'10','localisation':'Jura', 'type_arbre_id' :2, 'image':'pommier.jpg'},
{'id':4,'nomArbre':'cerisier', 'hauteurMaxi':'25', 'datePlantation':'2018-07-02', 'prixM3':'650','surfacePlantation':'15','localisation':'Japon', 'type_arbre_id' :2, 'image':'ceriser.jpg'},
{'id':5,'nomArbre':'chêne', 'hauteurMaxi':'35', 'datePlantation':'2017-04-17', 'prixM3':'105','surfacePlantation':'30','localisation':'Doubs', 'type_arbre_id' :3, 'image':'chêne.jpg'},
{'id':6,'nomArbre':'hêtre', 'hauteurMaxi':'45', 'datePlantation':'2016-05-25', 'prixM3':'195','surfacePlantation':'23','localisation':'Voges', 'type_arbre_id' :3, 'image':'hêtre.jpg'},
{'id':7,'nomArbre':'marronnier', 'hauteurMaxi':'32', 'datePlantation':'2019-06-08', 'prixM3':'268','surfacePlantation':'14','localisation':'Doubs', 'type_arbre_id' :4, 'image':'marronnier.jpg'},
{'id':8,'nomArbre':'olivier', 'hauteurMaxi':'20', 'datePlantation':'2019-07-19', 'prixM3':'456','surfacePlantation':'26','localisation':'Portugal', 'type_arbre_id' :5, 'image':'olivier.jpeg'},
{'id':9,'nomArbre':'saule pleureur', 'hauteurMaxi':'30', 'datePlantation':'2018-01-15', 'prixM3':'847','surfacePlantation':'2','localisation':'Jura', 'type_arbre_id' :6, 'image':'saule.jpg'},
{'id':10,'nomArbre':'acacia', 'hauteurMaxi':'48', 'datePlantation':'2019-08-26', 'prixM3':'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,'libelleType':'canape'},
{'id':2,'libelleType':'lit'},
{'id':3,'libelleType':'commode'},
{'id':4,'libelleType':'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_type)
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-moto/show |
GET | affiche les marques | retourne la vue show_marque.html |
add_marque | /marque-moto/add |
GET | affiche le formulaire pour ajouter une marque | retourne la vue add_marque.html |
valid_add_marque | /marque-moto/add |
POST | validation (soumission) du formulaire pour ajouter une marque | redirection sur la route /marque-moto/show |
delete_marque | /marque-moto/delete |
GET | suppression d’une marque | redirection sur la route /marque-moto/show |
edit_marque | /marque-moto/edit |
GET | affiche le formulaire pour modifier une marque | retourne la vue edit_marque.html |
valid_edit_marque | /marque-moto/edit |
POST | validation (soumission) du formulaire pour modifier une marque | redirection sur la route /marque-moto/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
= [
marquesMotos '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_moto(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-echecs/show |
GET | affiche les clubs | retourne la vue show_club.html |
add_club | /club-echecs/add |
GET | affiche le formulaire pour ajouter un club | retourne la vue add_club.html |
valid_add_club | /club-echecs/add |
POST | validation (soumission) du formulaire pour ajouter un club | redirection sur la route /club-echecs/show |
delete_club | /club-echecs/delete |
GET | suppression d’un club | redirection sur la route /club-echecs/show |
edit_club | /club-echecs/edit |
GET | affiche le formulaire pour modifier un club | retourne la vue edit_club.html |
valid_edit_club | /club-echecs/edit |
POST | validation (soumission) du formulaire pour modifier un club | redirection sur la route /club-echecs/show |
filtre_club | /club-echecs/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'},
{
]
= [
clubsEchecs '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_echecs (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 edit_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-ville/show |
GET | affiche les parkings | retourne la vue show_parking.html |
add_parking | /parking-ville/add |
GET | affiche le formulaire pour ajouter un parking | retourne la vue add_parking.html |
valid_add_parking | /parking-ville/add |
POST | validation (soumission) du formulaire pour ajouter un parking | redirection sur la route /parking-ville/show |
delete_parking | /parking-ville/delete |
GET | suppression d’un parking | redirection sur la route /parking-ville/show |
edit_parking | /parking-ville/edit |
GET | affiche le formulaire pour modifier un parking | retourne la vue edit_parking.html |
valid_edit_parking | /parking-ville/edit |
POST | validation (soumission) du formulaire pour modifier un parking | redirection sur la route /parking-ville/show |
filtre_parking | /parking-ville/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'}
{
]
= [
parkingsVilles '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_ville(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 edit_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 edit_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 ,'libelleType':'Mini-ski'},
{'id' : 2 ,'libelleType':'Ski de fond'},
{'id' : 3 ,'libelleType':'Ski de piste'},
{'id' : 4 ,'libelleType':'Ski de randonnée'},
{'id' : 5 ,'libelleType':'Freestyle'},
{'id' : 6 ,'libelleType':'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-cours/show |
GET | affiche les matieres | retourne la vue show_matiere.html |
add_matiere | /matiere-cours/add |
GET | affiche le formulaire pour ajouter une matiere | retourne la vue add_matiere.html |
valid_add_matiere | /matiere-cours/add |
POST | validation (soumission) du formulaire pour ajouter une matiere | redirection sur la route /matiere-cours/show |
delete_matiere | /matiere-cours/delete |
GET | suppression d’une matiere | redirection sur la route /matiere-cours/show |
edit_matiere | /matiere-cours/edit |
GET | affiche le formulaire pour modifier une matiere | retourne la vue edit_matiere.html |
valid_edit_matiere | /matiere-cours/edit |
POST | validation (soumission) du formulaire pour modifier une matiere | redirection sur la route /matiere-cours/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
= [
matieresCours 'id' : 1 ,'libelleMatiere':'Mathématiques'},
{'id' : 2 ,'libelleMatiere':'Francais'},
{'id' : 3 ,'libelleMatiere':'Physique-Chimie'},
{'id' : 4 ,'libelleMatiere':'Sport'}
{
]= [
enseignants '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_cours (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 edit_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 edit_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_id':'1', 'coutEntretien':'20.5', 'photo':'img_bangui.png' },
{'id' : '2', 'surface':'6000', 'dateRelevee':'2019-01-24', 'localisation':'Deggendorf', 'nbArbreAre':'6', 'typeForet_id':'6', 'coutEntretien':'80.3', 'photo':'img_Deggendorf.png' },
{'id' : '3', 'surface':'7800', 'dateRelevee':'2013-08-11', 'localisation':'Manaus', 'nbArbreAre':'7', 'typeForet_id':'5', 'coutEntretien':'125.25', 'photo':'img_Manaus.png' },
{'id' : '4', 'surface':'30', 'dateRelevee':'2015-09-12', 'localisation':'Tomsk', 'nbArbreAre':'8', 'typeForet_id':'2', 'coutEntretien':'30.2', 'photo':'img_Tomsk.png' },
{'id' : '5', 'surface':'340', 'dateRelevee':'2020-10-23', 'localisation':'Boende', 'nbArbreAre':'9', 'typeForet_id':'3', 'coutEntretien':'80.6', 'photo':'img_Boende.png' },
{'id' : '6', 'surface':'1500', 'dateRelevee':'2020-09-01', 'localisation':'Aokigahara', 'nbArbreAre':'10', 'typeForet_id':'Sombre', 'coutEntretien':'20.5', 'photo':'img_Aokigahara.png' },
{'id' : '7', 'surface':'74', 'dateRelevee':'2008-08-15', 'localisation':'Blair', 'nbArbreAre':'9', 'typeForet_id':'Sombre', 'coutEntretien':'43.2', 'photo':'img_Blair.png' },
{'id' : '8', 'surface':'25000', 'dateRelevee':'2017-02-14', 'localisation':'Jakarta', 'nbArbreAre':'8', 'typeForet_id':'1', 'coutEntretien':'13', 'photo':'img_Jakarta.png' },
{'id' : '9', 'surface':'5300', 'dateRelevee':'2018-03-23', 'localisation':'Bussang', 'nbArbreAre':'7', 'typeForet_id':'2', 'coutEntretien':'20.7', 'photo':'img_Bussang.png' },
{'id' : '10' ,'surface':'2000', 'dateRelevee':'2015-01-30', 'localisation':'Kupio', 'nbArbreAre':'6', 'typeForet_id':'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');
(
é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_jeu | /type-jeu/show |
GET | affiche les types de jeux | retourne la vue show_type_jeu.html |
add_type_jeu | /type-jeu/add |
GET | affiche le formulaire pour ajouter un type de jeu | retourne la vue add_type_jeu.html |
valid_add_type_jeu | /type-jeu/add |
POST | validation (soumission) du formulaire pour ajouter un type de jeu | redirection sur la route /type-jeu/show |
delete_type_jeu | /type-jeu/delete |
GET | suppression d’un type de jeu | redirection sur la route /type-jeu/show |
edit_type_jeu | /type-jeu/edit |
GET | affiche le formulaire pour modifier un type de jeu | retourne la vue edit_type_jeu.html |
valid_edit_type_jeu | /type-jeu/edit |
POST | validation (soumission) du formulaire pour modifier un type de jeu | redirection sur la route /type-jeu/show |
show_jeu_plateau | /jeu-plateau/show |
GET | affiche les jeux | retourne la vue show_jeu.html |
add_jeu_plateau | /jeu-plateau/add |
GET | affiche le formulaire pour ajouter un jeu | retourne la vue add_jeu.html |
valid_add_jeu | /jeu-plateau/add |
POST | validation (soumission) du formulaire pour ajouter un jeu | redirection sur la route /jeu-plateau/show |
delete_jeu_plateau | /jeu-plateau/delete |
GET | suppression d’un jeu | redirection sur la route /jeu/show |
edit_jeu_plateau | /jeu-plateau/edit |
GET | affiche le formulaire pour modifier un jeu | retourne la vue edit_jeu.html |
valid_edit_jeu_plateau | /jeu-plateau/edit |
POST | validation (soumission) du formulaire pour modifier un jeu | redirection sur la route /jeu/show |
filtre_jeu_plateau | /jeu-plateau/filtre |
GET | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_jeu_filtre_show.html |
########################################################### Sujet 28
# ? jeuPlateau(id,nomJeu, marque, prix_jeu, nbMiniJoueurs, nbMaxiJoueurs, description, photo, typeJeu_id ) typeJeu(id,libelleTypeJeu)
= [
typeJeu 'id':1, 'libelleTypeJeu':'jeu de stratégie'},
{'id':2, 'libelleTypeJeu':'jeu de hasard'},
{'id':3, 'libelleTypeJeu':'jeu de lettre'},
{'id': 4, 'libelleTypeJeu': 'jeu de mémoire'},
{'id': 5, 'libelleTypeJeu': 'jeu de déduction'},
{'id': 6, 'libelleTypeJeu': 'jeu de réflexe'},
{'id': 7, 'libelleTypeJeu': 'jeu de coopération'},
{
]
= [
jeuPlateau 'id':1, 'nomJeu':'Monopoly', 'marque':'Hasbro', 'prix':29.99, 'joueursMin':3, 'joueursMax':6,
{'description':'Jeu de chance dont le but est de ruiner ses adversaires grâce à ses hôtels', 'image':'monopoly.png', 'dateCreation':'1904-01-01', 'typeJeu_id':2},
'id':2, 'nomJeu':'Uno', 'marque':'Mattel', 'prix':9.99, 'joueursMin':2, 'joueursMax':10,
{'description':'Jeu de rapidité qui consiste à se débarasser de toutes ses cartes en premier', 'image':'uno.png', 'dateCreation':'1971-02-02', 'typeJeu_id':6},
'id':3, 'nomJeu':'Loup-Garou', 'marque':'Thiercelieux', 'prix':12.57, 'joueursMin':6, 'joueursMax':24,
{'description':'Jeu de déduction qui oppose loup-garous et villageois, et dont le but est de survivre', 'image':'loupGarou.png', 'dateCreation':'1986-02-02', 'typeJeu_id':5},
'id':4, 'nomJeu':'Scrabble', 'marque':'Scrabble', 'prix':35.92, 'joueursMin':2, 'joueursMax':4,
{'description':'Jeu de lettre dans lequel on marque des points en formant des mots sur un plateau', 'image':'scrabble.png', 'dateCreation':'1955-02-02', 'typeJeu_id':3},
'id':5, 'nomJeu':'Risk', 'marque':'Hasbro', 'prix':59.99, 'joueursMin':2, 'joueursMax':6,
{'description':'Jeu de stratégie militaire consistant à conquérir des territoires', 'image':'risk.png', 'dateCreation':'1957-02-02', 'typeJeu_id':1},
'id':6, 'nomJeu':'Times Up', 'marque':'Asmodee', 'prix':23.49, 'joueursMin':4, 'joueursMax':12,
{'description':'Jeu en coopération qui oppose plusieurs équipes de 2 devants faire deviner des mimes pour gagner des points', 'image':'timesup.png', 'dateCreation':'1999-02-02', 'typeJeu_id':7},
'id':7, 'nomJeu':'Colon Catan', 'marque':'Kosmos', 'prix':45.99, 'joueursMin':3, 'joueursMax':4,
{'description':'Jeu de stratégie dont le but est de collecter et organiser des ressources pour coloniser l\'île', 'image':'colon.png', 'dateCreation':'1995-02-02', 'typeJeu_id':1}, # colon de catane
]
archive des fichiers d’images de ce sujet
à vérifier !
-- sujet 28 : jeu_plateau / type_jeu --
INSERT INTO type_jeu(id_type_jeu, libelle_type_jeu, image) VALUES
NULL, 'jeu de stratégie'),
(NULL, 'jeu de hasard'),
(NULL, 'jeu de lettre'),
(NULL, 'jeu de mémoire'),
(NULL, 'jeu de déduction'),
(NULL, 'jeu de réflexe'),
(NULL, 'jeu de coopération'),
(NULL, 'jeu de chiffre'),
(NULL, 'jeu de dés');
(
INSERT INTO jeu_plateau (id_jeu_plateau, nom_jeu, marque, prix, joueurs_min, joueurs_max, description, image, date_creation, type_jeu_id) VALUES
NULL, 'Monopoly', 'Hasbro', 29.99, 3, 6, 'Jeu de chance dont le but est de ruiner ses adversaires grâce à ses hôtels', '2024-1-1' ,'monopoly.png', 2),
(NULL, 'Uno', 'Mattel', 9.99, 2, 10, 'Jeu de rapidité qui consiste à se débarrasser de toutes ses cartes en premier', '2024-1-1' ,'uno.png', 6),
(NULL, 'Loup-Garou', 'Thiercelieux', 12.57, 6, 24, 'Jeu de déduction qui oppose loup-garous et villageois, et dont le but est de survivre', '2024-1-1' ,'loupGarou.png', 5),
(NULL, 'Scrabble', 'Scrabble', 35.92, 2, 4, 'Jeu de lettre dans lequel on marque des points en formant des mots sur un plateau', '2024-1-1' ,'scrabble.png', 3),
(NULL, 'Risk', 'Hasbro', 59.99, 2, 6, 'Jeu de stratégie militaire consistant à conquérir des territoires', '2024-1-1' ,'risk.png', 1),
(NULL, 'Times Up', 'Asmodee', 23.49, 4, 12, 'Jeu en coopération qui oppose plusieurs équipes de 2 devant faire deviner des mimes pour gagner des points', '2024-1-1' ,'timesup.png', 7),
(NULL, 'Cluedo', 'Hasbro', 31.99, 3, 8, 'Jeu en coopération dont le but est de démasquer le coupable d\'un meurte', '2024-1-1' ,'cluedo.png', 7),
( (NULL, 'Yam', 'Schmidt', 24.99, 2, 6, 'Jeu dont le but est de faire le plus de points possible à partir de combinaisons de dés', '2024-1-1' ,'yam.png', 9),
(NULL, 'Bonne Paye', 'Hasbro', 19.99, 2, 8, 'Jeu de plateau qui consiste à devenir le plus riche possible', '2024-1-1' ,'bp.png', 2),
(NULL, 'Triominos', 'Goliath', 14.18, 2, 4, 'Jeu de chiffre dans lequel les joueurs doivent se débarrasser de leurs tuiles en associant les chiffres de celles-ci', '2024-1-1' ,'triomino.png', 8),
(NULL, 'Aventuriers du Rail', 'Days of Wonder', 39.45, 2, 5, 'Jeu de stratégie dont le but est de rallier le plus de villes des états-unis possible avec des trains', '2024-1-1' ,'rail.png', 1),
(NULL, 'Colon Catan', 'Kosmos', 45.99, 3, 4, 'Jeu de stratégie dont le but est de collecter et organiser des ressources pour coloniser l\'île', '2024-1-1' ,'colon.png', 1);
é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_pneu | /type-pneu/show |
GET | affiche les types de pneus | retourne la vue show_type_pneu.html |
add_type_pneu | /type-pneu/add |
GET | affiche le formulaire pour ajouter un type de pneu | retourne la vue add_type_pneu.html |
valid_add_type_pneu | /type-pneu/add |
POST | validation (soumission) du formulaire pour ajouter un type de pneu | redirection sur la route /type-pneu/show |
delete_type_pneu | /type-pneu/delete |
GET | suppression d’un type de pneu | redirection sur la route /type-pneu/show |
edit_type_pneu | /type-pneu/edit |
GET | affiche le formulaire pour modifier un type de pneu | retourne la vue edit_type_pneu.html |
valid_edit_type_pneu | /type-pneu/edit |
POST | validation (soumission) du formulaire pour modifier un type de pneu | redirection sur la route /type-pneu/show |
show_pneu_velo | /pneu-velo/show |
GET | affiche les pneus | retourne la vue show_pneu_velo.html |
add_pneu_velo | /pneu-velo/add |
GET | affiche le formulaire pour ajouter un pneu | retourne la vue add_pneu_velo.html |
valid_add_pneu_velo | /pneu-velo/add |
POST | validation (soumission) du formulaire pour ajouter un pneu | redirection sur la route /pneu-velo/show |
delete_pneu_velo | /pneu-velo/delete |
GET | suppression d’un pneu | redirection sur la route /pneu-velo/show |
edit_pneu_velo | /pneu-velo/edit |
GET | affiche le formulaire pour modifier un pneu | retourne la vue edit_pneu_velo.html |
valid_edit_pneu_velo | /pneu-velo/edit |
POST | validation (soumission) du formulaire pour modifier un pneu | redirection sur la route /pneu-velo/show |
filtre_pneu_velo | /pneu-velo/filtre |
GET | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_pneu_filtre_show.html |
########################################################### Sujet 29
= [
typePneuVelo 'id': 1, 'libelleType': 'Ville'},
{'id': 2, 'libelleType': 'VTT'},
{'id': 3, 'libelleType': 'Route'},
{'id': 4, 'libelleType': 'Vélo électrique'},
{'id': 5, 'libelleType': 'Enfant'}
{
]
= [
pneuVelo 'id': 1, 'nomPneu': 'Pneu velo Confort Michelin', 'fabricant': 'Michelin', 'modelePneu':'Pneu Michelin blanc et noir', 'largeurPneu': 3, 'diametreJante': 65, 'dimension': '22 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 1, 'prixPneu': 22.00, 'image': 'pneu_michelin_blanc_noir.png'},
{'id': 2,'nomPneu': 'Pneu VTT Crossmax', 'fabricant': 'Mavic', 'modelePneu': 'Crossmax Pro', 'largeurPneu': 2.4, 'diametreJante': 60, 'dimension': '29 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 2, 'prixPneu': 55.00, 'image': 'pneu_VTT_crossmax.png'},
{'id': 3, 'nomPneu': 'Pneu ville CityTouring', 'fabricant': 'Continental', 'modelePneu': 'TourRide', 'largeurPneu': 3, 'diametreJante': 62, 'dimension': '28 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 1, 'prixPneu': 35.58, 'image': 'pneu_ville_touring.png'},
{'id': 4, 'nomPneu': 'Pneu Route Ultrasport', 'fabricant': 'Schwalbe', 'modelePneu': 'Ultrasport', 'largeurPneu': 2, 'diametreJante': 70, 'dimension': '28 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 3, 'prixPneu': 28.00, 'image': 'pneu_ultrasport.png'},
{'id': 5, 'nomPneu': 'Pneu Cars', 'fabricant': 'Michelin', 'modelePneu': 'Mich&Flash', 'largeurPneu': 1.3, 'diametreJante': 15, 'dimension': '16 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 5, 'prixPneu': 15.00, 'image': 'pneu_cars.png'},
{'id': 6, 'nomPneu': 'Pneu Big Ben', 'fabricant': 'Schwalbe', 'modelePneu': 'Ballon', 'largeurPneu': 2.3, 'diametreJante': 30, 'dimension': '26 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 4, 'prixPneu': 20.00, 'image': 'pneu_big_ben.png'},
{'id': 7, 'nomPneu': 'Pneu Energy', 'fabricant': 'Michelin', 'modelePneu': 'ElectrikRide', 'largeurPneu': 3, 'diametreJante': 35, 'dimension': '29 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 4, 'prixPneu': 22.64, 'image': 'pneu_energy.png'},
{'id': 8, 'nomPneu': 'Pneu Touring Marathon', 'fabricant': 'Schwalbe', 'modelePneu': 'Touring', 'largeurPneu': 5, 'diametreJante': 55, 'dimension': '26 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 3, 'prixPneu': 60.00, 'image': 'pneu_touring_marathon.png'},
{'id': 9, 'nomPneu': 'Pneu VTT Ikon', 'fabricant': 'Maxxis', 'modelePneu': 'EXO', 'largeurPneu': 7, 'diametreJante': 63, 'dimension': '29 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 2, 'prixPneu': 33.99, 'image': 'pneu_VTT_Ikon.png'},
{'id': 10, 'nomPneu': 'Pneu Route Corsa', 'fabricant': 'Veloflex', 'modelePneu': 'Corsa Evo', 'largeurPneu': 2, 'diametreJante': 75, 'dimension': '25 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 3, 'prixPneu': 49.26, 'image': 'pneu_route_corsa.png'},
{'id': 11, 'nomPneu': 'Pneu velo Zig Zag', 'fabricant': 'Oxford', 'modelePneu': 'Noir traditionnel', 'largeurPneu': 3.2, 'diametreJante': 58, 'dimension': '26 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 1, 'prixPneu': 10.00, 'image': 'pneu_velo_zig_zag.png'},
{'id': 12, 'nomPneu': 'Pneu Kid Road', 'fabricant': 'Bike Original', 'modelePneu': 'RoadTown', 'largeurPneu': 1.5, 'diametreJante': 18, 'dimension': '18 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 5, 'prixPneu': 12.00, 'image': 'pneu_kid_road.png'},
{'id': 13, 'nomPneu': 'Pneu VTT Syerra', 'fabricant': 'Vittoria', 'modelePneu': 'TLR G2', 'largeurPneu': 3, 'diametreJante': 46, 'dimension': '27 pouces', 'dateCreation':'2023-02-02' , 'typePneu_id': 2, 'prixPneu': 44.99, 'image': 'pneu_VTT_syerra.png'}
{
]
archive des fichiers d’images de ce sujet
à vérifier !
-- sujet 29 : pneu_velo / type_pneu_velo --
INSERT INTO type_pneu_velo (id_type_pneu, libelle_type)
VALUES
NULL, 'Ville'),
(NULL, 'VTT'),
(NULL, 'Route'),
(NULL, 'Vélo électrique'),
(NULL, 'Fauteuil roulant'),
(NULL, 'Enfant');
(
INSERT INTO pneu_velo (id_pneu_velo, nom_pneu, fabricant, modele_pneu, largeur_pneu, diametre_jante, dimension, type_pneu_id, prix_pneu, image)
VALUES
NULL, 'Pneu velo Confort Michelin', 'Michelin', 'Pneu Michelin blanc et noir', 3, 65, '22 pouces', 1, 22.00, 'pneu_michelin_blanc_noir.png'),
(NULL, 'Pneu VTT Crossmax','Mavic','Crossmax Pro', 2.4, 60, '29 pouces', 2, 55.00, 'pneu_VTT_crossmax.png'),
(NULL, 'Pneu ville CityTouring','Continental','TourRide', 3, 62, '28 pouces', 1, 35.58, 'pneu_ville_touring.png'),
(NULL, 'Pneu Route Ultrasport','Schwalbe','Ultrasport', 2, 70, '28 pouces', 3, 28.00, 'pneu_ultrasport.png'),
(NULL, 'Pneu fauteuil roulant Marathon','Schwalbe','Rightrun', 2, 35, '24 pouces', 5, 9.15, 'pneu_fauteuil_roulant_marathon.png'),
(NULL, 'Pneu Cars','Michelin','Mich&Flash', 1.3, 15, '16 pouces', 6, 15.00, 'pneu_cars.png'),
(NULL, 'Pneu Big Ben','Schwalbe','Ballon', 2.3, 30, '26 pouces', 4, 20.00, 'pneu_big_ben.png'),
(NULL, 'Pneu Touring Marathon','Schwalbe','Touring', 5, 55, '26 pouces', 3, 60.00, 'pneu_touring_marathon.png'),
(NULL, 'Pneu VTT Ikon','Maxxis','EXO', 7, 63, '29 pouces', 2, 33.99, 'pneu_VTT_Ikon.png'),
(NULL, 'Pneu Route Corsa','Veloflex','Corsa Evo', 2, 75, '25 pouces', 3, 49.26, 'pneu_route_corsa.png'),
(NULL, 'Pneu velo Zig Zag','Oxford','Noir traditionnel', 3.2, 58, '26 pouces', 1, 10.00, 'pneu_velo_zig_zag.png'),
(NULL, 'Pneu Kid Road','Bike Original','RoadTown', 1.5, 18, '18 pouces', 6, 12.00, 'pneu_kid_road.png'),
(NULL, 'Pneu VTT Syerra','Vittoria','TLR G2', 3, 46, '27 pouces', 2, 44.99, 'pneu_VTT_syerra.png'),
(NULL, 'Pneu Energy','Michelin','ElectrikRide', 3, 35, '29 pouces', 4, 22.64, 'pneu_energy.png'),
(NULL, 'Pneu Contact','Continental','Urban', 4, 40, '25 pouces', 5, 25.47, 'pneu_contact.png'); (
é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_salle | /type-salle/show |
GET | affiche les types de salles | retourne la vue show_type_salle.html |
add_type_salle | /type-salle/add |
GET | affiche le formulaire pour ajouter un type de salle | retourne la vue add_type_salle.html |
valid_add_type_salle | /type-salle/add |
POST | validation (soumission) du formulaire pour ajouter un type de salle | redirection sur la route /type-salle/show |
delete_type_salle | /type-salle/delete |
GET | suppression d’un type de salle | redirection sur la route /type-salle/show |
edit_type_salle | /type-salle/edit |
GET | affiche le formulaire pour modifier un type de salle | retourne la vue edit_type_salle.html |
valid_edit_type_salle | /type-salle/edit |
POST | validation (soumission) du formulaire pour modifier un type de salle | redirection sur la route /type-salle/show |
show_salle_cours | /salle-cours/show |
GET | affiche les salles | retourne la vue show_salle_cours.html |
add_salle_cours | /salle-cours/add |
GET | affiche le formulaire pour ajouter une salle | retourne la vue add_salle_cours.html |
valid_add_salle_cours | /salle-cours/add |
POST | validation (soumission) du formulaire pour ajouter une salle | redirection sur la route /salle-cours/show |
delete_salle_cours | /salle-cours/delete |
GET | suppression d’une salle | redirection sur la route /salle-cours/show |
edit_salle_cours | /salle-cours/edit |
GET | affiche le formulaire pour modifier une salle | retourne la vue edit_salle_cours.html |
valid_edit_salle_cours | /salle-cours/edit |
POST | validation (soumission) du formulaire pour modifier une salle | redirection sur la route /salle-cours/show |
filtre_salle_cours | /salle-cours/filtre |
GET | affichage du formulaire du filtre et des éléments d’une des tables python sous forme de ‘cards’ | retourne la vue front_salle_filtre_show.html |
########################################################### Sujet 30
= [
typeSalle 'id': 1, 'nomTypeSalle': 'td', 'typeCours': 'TD'},
{'id': 2, 'nomTypeSalle': 'amphi', 'typeCours': 'CM'},
{'id': 3, 'nomTypeSalle': 'tp_machine', 'typeCours': 'TP'},
{'id': 4, 'nomTypeSalle': 'tp_reseau', 'typeCours': 'TP'},
{'id': 5, 'nomTypeSalle': 'salle_des_profs', 'typeCours': None}
{
]
= [
salleCours 'id': 1, 'nomSalle': 'Salle 101', 'etage': 0, 'nbMaxEtudiants': 30, 'surface': 100, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 3, 'photo':'101.jpg'},
'id': 2, 'nomSalle': 'Salle 102', 'etage': 0, 'nbMaxEtudiants': 25, 'surface': 102, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 3, 'photo':'102.jpg'},
'id': 3, 'nomSalle': 'Salle 103', 'etage': 1, 'nbMaxEtudiants': 28, 'surface': 104, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 4, 'photo':'103.jpg'},
'id': 4, 'nomSalle': 'Salle 104', 'etage': 1, 'nbMaxEtudiants': 24, 'surface': 105, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 3, 'photo':'104.jpg'},
'id': 5, 'nomSalle': 'Salle 105', 'etage': 1, 'nbMaxEtudiants': 28, 'surface': 98, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 3, 'photo':'105.jpg'},
'id': 6, 'nomSalle': 'Salle 106', 'etage': 1, 'nbMaxEtudiants': 23, 'surface': 97, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 3, 'photo':'106.jpg'},
'id': 7, 'nomSalle': 'Salle 107', 'etage': 1, 'nbMaxEtudiants': 24, 'surface': 96, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 3, 'photo':'107.jpg'},
'id': 8, 'nomSalle': 'Salle 108', 'etage': 1, 'nbMaxEtudiants': 31, 'surface': 85, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 5, 'photo':'108.jpg'},
'id': 9, 'nomSalle': 'Salle 109', 'etage': 1, 'nbMaxEtudiants': 34, 'surface': 88, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 5, 'photo':'109.jpg'},
'id': 10, 'nomSalle': 'Salle 200', 'etage': 1, 'nbMaxEtudiants': 10, 'surface': 91, 'nbPrisesCourant': 15,
{'nbMachines': 25, 'batiment': 'E', 'type_salle_id': 3, 'photo':'200.jpg'},
'id': 11, 'nomSalle': 'Salle 201', 'etage': 1, 'nbMaxEtudiants': 10, 'surface': 94, 'nbPrisesCourant': 15,
{'nbMachines': 25, 'batiment': 'E', 'type_salle_id': 3, 'photo':'201.jpg'},
'id': 12, 'nomSalle': 'Salle 202', 'etage': 2, 'nbMaxEtudiants': 14, 'surface': 95, 'nbPrisesCourant': 15,
{'nbMachines': 25, 'batiment': 'E', 'type_salle_id': 3, 'photo':'202.jpg'},
'id': 13, 'nomSalle': 'Salle 203', 'etage': 2, 'nbMaxEtudiants': 30, 'surface': 96, 'nbPrisesCourant': 25,
{'nbMachines': 35, 'batiment': 'E', 'type_salle_id': 1, 'photo':'203.jpg'},
'id': 14, 'nomSalle': 'Salle 204', 'etage': 2, 'nbMaxEtudiants': 28, 'surface': 103, 'nbPrisesCourant': 10,
{'nbMachines': 15, 'batiment': 'E', 'type_salle_id': 1, 'photo':'204.jpg'},
'id': 15, 'nomSalle': 'Salle 205', 'etage': 2, 'nbMaxEtudiants': 27, 'surface': 108, 'nbPrisesCourant': 10,
{'nbMachines': 15, 'batiment': 'E', 'type_salle_id': 1, 'photo':'205.jpg'},
'id': 16, 'nomSalle': 'Salle 206', 'etage': 2, 'nbMaxEtudiants': 36, 'surface': 107, 'nbPrisesCourant': 10,
{'nbMachines': 15, 'batiment': 'E', 'type_salle_id': 1, 'photo':'206.jpg'},
'id': 17, 'nomSalle': 'Salle 207', 'etage': 2, 'nbMaxEtudiants': 36, 'surface': 100, 'nbPrisesCourant': 10,
{'nbMachines': 15, 'batiment': 'E', 'type_salle_id': 1, 'photo':'207.jpg'},
'id': 18, 'nomSalle': 'Salle 208', 'etage': 2, 'nbMaxEtudiants': 28, 'surface': 100, 'nbPrisesCourant': 10,
{'nbMachines': 15, 'batiment': 'E', 'type_salle_id': 1, 'photo':'208.jpg'},
'id': 19, 'nomSalle': 'Salle 209', 'etage': 2, 'nbMaxEtudiants': 27, 'surface': 100, 'nbPrisesCourant': 10,
{'nbMachines': 15, 'batiment': 'E', 'type_salle_id': 1, 'photo':'209.jpg'},
'id': 20, 'nomSalle': 'Amphi 1', 'etage': 0, 'nbMaxEtudiants': 100, 'surface': 500, 'nbPrisesCourant': 10,
{'nbMachines': 15, 'batiment': 'F', 'type_salle_id': 2, 'photo':'amphi1.jpg'},
'id': 21, 'nomSalle': 'Amphi 3', 'etage': 0, 'nbMaxEtudiants': 100, 'surface': 500, 'nbPrisesCourant': 10,
{'nbMachines': 15, 'batiment': 'D', 'type_salle_id': 2, 'photo':'amphi3.jpg'}
]
archive des fichiers d’images de ce sujet
à vérifier !
INSERT INTO type_salle(id_type_salle, nom_type_salle, type_cours) VALUES
VALUES (NULL, 'Sans machine', 'TD'),
NULL, 'Amphi', 'CM'),
(NULL, 'TP_machine', 'TP'),
(NULL, 'TP_reseau', 'TP'),
(NULL, 'Salle des profs', NULL);
(
INSERT INTO salle_cours (id_salle, nom_salle, etage, nb_max_etudiants, surface , nb_prises_courant, nb_machines, batiment, type_salle_id, photo ) VALUES
VALUES (NULL, 'Salle 007', 0, 30, 100, 25, 35, 'E', 3, '007.jpg'),
NULL, 'Salle 009', 0, 25, 102, 25, 35, 'E', 3, '009.jpg'),
(NULL, 'Salle 101', 1, 30, 100, 25, 35, 'E', 3, '101.jpg'),
(NULL, 'Salle 102', 1, 25, 102, 25, 35, 'E', 3, '102.jpg'),
(NULL, 'Salle 103', 1, 28, 104, 25, 35, 'E', 4, '103.jpg'),
(NULL, 'Salle 104', 1, 24, 105, 25, 35, 'E', 3, '104.jpg'),
(NULL, 'Salle 105', 1, 28, 98, 25, 35, 'E', 3, '105.jpg'),
(NULL, 'Salle 106', 1, 23, 97, 25, 35, 'E', 3, '106.jpg'),
(NULL, 'Salle 107', 1, 24, 96, 25, 35, 'E', 3, '107.jpg'),
(NULL, 'Salle 108', 1, 24, 96, 25, 35, 'E', 5, '108.jpg'),
(NULL, 'Salle 202', 2, 28, 110, 30, 35, 'E', 3, '202.jpg'),
(NULL, 'Salle 203', 2, 27, 96, 10, 4, 'E', 1, ''),
(NULL, 'Salle 204', 2, 29, 98, 10, 4, 'E', 1, '204.jpg'),
(NULL, 'Salle 205', 2, 27, 93, 10, 4, 'E', 1, '205.jpg'),
(NULL, 'Salle 206', 2, 28, 102, 10, 4, 'E', 1, '206.jpg'),
(NULL, 'Salle 207', 2, 30, 104, 10, 4, 'E', 1, '207.jpg'),
(NULL, 'Salle 208', 2, 29, 107, 10, 4, 'E', 1, ''),
(NULL, 'Salle 209', 2, 27, 95, 10, 4, 'E', 1, '209.jpg'),
(NULL, 'Amphi 1', 0, 120, 500, 10, 15, 'F', 2, 'amphi1.jpg'),
(NULL, 'Amphi 3', 0, 130, 600, 10, 15, 'D', 2, 'amphi3.jpg');
(