mini projet

Il faut terminer la version minimum du tp précédent avant de commencer le projet

Consignes pour Réaliser toutes les interfaces pour ajouter/modifier/supprimer et afficher les données des 2 tableaux python de votre sujet


Faire les mêmes interfaces que lors des tps précédents mais en utilisant les 2 tableaux de données de votre sujet


Le projet est à rendre sur moodle (utiliser le lien suivant), clé d’inscription: R105 pour le samedi 2 novembre


Soigner l’ergonomie des interfaces

Faire attention que les contenus des pages affichées soient valides sur W3C



Respecter les consignes suivantes (surtout typographique) :


Remplacer table par les 2 noms des tables de votre sujet


Volontairement, il n’y a pas de “design”, cependant voici une démonstration des fonctionnalités du travail attendu http://amillet1.pythonanywhere.com/

ATTENTION : on ne doit pas retrouver le mot article dans votre code

L’affichage des 2 tableaux “python” doit être sous forme de tableaux pour afficher/ajouter/supprimer/modifier (CRUD back-office)

Les 2 tableaux python ne sont jamais modifiés

Les noms des champs INPUT dans les formulaires doivent porter le nom des clés des tableaux python

Lors de la modification d’un enregistrement, afficher le contenu de l’enregistrement (la ligne sélectionnée) dans les champs INPUT du formulaire.


ATTENTION : utiliser le code vu en cours, l’utilisation d’une IA générative pour produire un code non conforme au TP vu en cours entraîne une grosse pénalité.


Étapes et exemples de vues (consignes CSS et BootStrap)

affichage des deux tableaux de dictionnaires

formulaires


Consignes CSS (styles) :

messages “flash”

exemple

Interfaces supplémentaires (interface d’un filtre)


Formulaire :

fonctionnement du filtre

exemple avec les articles


Exemple de code pour afficher le contenu du filtre

exemple de code pour afficher les éléments du formulaire filtre si on valide le formulaire

Pour comparer des réels c’est un peu plus compliqué

modification à ajouter pour tester des réels (il faut adapter ce code)


ANNEXE

script de test du projet :

Un premier script extrait les archives .tar.gz et .zip, ce script recherche un dossier et copie un autre script test_projet.sh dans le dossier. Le script test_projet.sh se trouve au même niveau que le fichier app.py (une erreur est signalée dans le cas contraire).


script de test :

#!/bin/bash
clear

echo -e "\033[0;32m \n**** listes des fonctions(snake_case: show_nom_table add_nom_table valid_add_nom_table delete_nom_table edit_nom_table valid_add_nom_table) :"
grep "def "  app.py | uniq -c

echo -e "\033[0;32m \n**** listes des fichiers (snake_case: add_table.html edit_table.html show_table.html)  : "
ls templates/*

echo -e "\033[0;31m \n***** listes des routes (spinal case : /nom-table/show /nom-table/edit /nom-table/add ) \033[0m"
grep "@app.route"  app.py

echo -e "\033[0;32m \n**** listes des paramètres POST (CamelCase : clés des dictionnaires, sauf la clé étrangére) :"
grep "request.form.get"  app.py | uniq -c

echo -e " \033[0m"

code  app.py &

killall python3
flask --debug  --app app  run   --host 0.0.0.0