======================= Installation et package ======================= ---------------------- apache -flask partie 1 ---------------------- .. code:: bash sudo apt install apache2 sudo apt install python3-venv sudo mkdir /var/www/.venv sudo chown yves /var/www/.venv python3 -m venv /var/www/.venv source /var/www/.venv/bin/activate #recuperation de la base de l'application nom = "serveur" sudo mkdir /var/www/$nom sudo chown yves /var/www/$nom cp -r install/libperso /var/www/$nom/ mkdir /var/www/$nom/templates mkdir /var/www/$nom/static cp install/templates/index.html cp install/templates/page_menu_gauche.html cp install/templates/barre_menu_2.html admin.html et change.html cp install/static/w3.css cp -r install/static/fontawesome-free-6.4.2-web cp -r install/static/font-awesome.min.css cp -r install/static/style.css scp /var/www/test/install/templates/barre_menu_1.html bureau:/var/www/serveur/templates/ ------------- Commandes pip ------------- .. code:: bash #pour lister les dépnedances installées pip freeze #pour exporter la liste pip freeze > requirement.txt #pour importer la liste pip install -r requirement.txt #pip install wheel (??) #pour l'installation du paquet mysql-connector #pour flask pip install flask #ensuite # surtout pas celui la : pip install mysql-connector pip install mysql-connector-python pip install python-cas ------------- commandes sql ------------- Les données sant dans le fichier /etc/serveur/conf.py .. code:: sql CREATE DATABASE IF NOT EXISTS donnees; USE donnees; source /opt/sql/tables.sql; CREATE USER 'sqluser'@'localhost' IDENTIFIED BY 'sqluser'; GRANT ALL PRIVILEGES ON donnees.* TO 'lecteur'@'localhost'; FLUSH PRIVILEGES; ----------------------------- tables utilisées pour la base ----------------------------- base : donnees tables : * bebel0810005R-ent_temp pour les utilisateurs pédagogiques * bebel0810005R-profs pour récupérer la liste des classes et groupes d'un prof * bebel-0810005R-groupes-eleves pour récupérer les groupes auxquels appartiennent les élèves (un groupe par ligne ) contient également les groupes des profs ------------------------------- les routes dans l'appli de base ------------------------------- identification : * la route login : - vérifie si username est dans session , si oui retourne dirige vers /secure sinon - cherche la présence d'un ticket stocke l'uid dans username rediriger vers secure * la route secure : - vérifie si admin - charge les groupes dans session donnees - charge les menus à partir du login et des groupes - cherche ressource dans session, si ressource est différent de quitter - si ressource est égal à resaece -> retourne la route activites_bp.index - sinon retourne la route session['ressource']+'_bp.index' - sinon retourne le template page_menu_gauche avec les données * cas retourne un username * on cherche les groupes dans les tables **/profile** accessible en méthode get : * si connecté retourne sur secure * sinon propose un lien pour se connecter **/accueil/** ou ressource est un blueprint * protection statique par vérification de la ressource dans une liste * si autorisé, chargé dans la variable de session ressource puis renvoie secure * sinon renvoie sur login **/logout** nettoie la session et déconnecte le cas laiise sur l'accueil