python
est présentpython --version
python3 --version
# vérifier si les paquets sont installés
pip list
pip3 show pymysql
pip3 show flask
# installer les paquets dans votre $HOME
pip install flask --break-system-packages
pip install pymysql --break-system-packages
# les paquets sont installés sur à l'IUT /usr/local/lib/python3.11/dist-packages
# les paquets sont installés sur ~/.local/lib/pythonxxxxx sur vos machines linux
python
est :sudo apt install python3-pip
python --version
python3 --version
affiche une version
mais pas la commande python --version
, créer un lien
symbolique de python
à python3
sudo ln -s /usr/bin/python3 /usr/bin/python
recopier le script ci-dessous dans un terminal
#!/bin/bash
echo "" >> ~/.bashrc
echo "alias looping='wine /opt/looping-mcd/Looping.exe'" >> ~/.bashrc
echo "alias datagrip='/opt/datagrip/bin/datagrip.sh'" >> ~/.bashrc
echo "alias pycharm='/opt/pycharm/bin/pycharm.sh'" >> ~/.bashrc
echo "#!/usr/bin/env xdg-open" > "/home/$USER/Bureau/datagrip.desktop"
echo "[Desktop Entry]" >> "/home/$USER/Bureau/datagrip.desktop"
echo "Version=1.0" >> /home/$USER/Bureau/datagrip.desktop
echo "Type=Application" >> /home/$USER/Bureau/datagrip.desktop
echo "Terminal=false" >> /home/$USER/Bureau/datagrip.desktop
echo "Icon=/opt/DataGrip/bin/datagrip.png" >> /home/$USER/Bureau/datagrip.desktop
echo "Exec=/opt/DataGrip/bin/datagrip.sh" >> /home/$USER/Bureau/datagrip.desktop
echo "Name=datagrip" >> /home/$USER/Bureau/datagrip.desktop
echo "#!/usr/bin/env xdg-open" > "/home/$USER/Bureau/pycharm.desktop"
echo "[Desktop Entry]" >> "/home/$USER/Bureau/pycharm.desktop"
echo "Version=1.0" >> /home/$USER/Bureau/pycharm.desktop
echo "Type=Application" >> /home/$USER/Bureau/pycharm.desktop
echo "Terminal=false" >> /home/$USER/Bureau/pycharm.desktop
echo "Icon=/opt/pycharm/bin/pycharm.png" >> /home/$USER/Bureau/pycharm.desktop
echo "Exec=/opt/pycharm/bin/pycharm.sh" >> /home/$USER/Bureau/pycharm.desktop
echo "Name=pycharm" >> /home/$USER/Bureau/pycharm.desktop
echo "#!/usr/bin/env xdg-open" > "/home/$USER/Bureau/looping.desktop"
echo "[Desktop Entry]" >> "/home/$USER/Bureau/looping.desktop"
echo "Version=1.0" >> /home/$USER/Bureau/looping.desktop
echo "Type=Application" >> /home/$USER/Bureau/looping.desktop
echo "Terminal=false" >> /home/$USER/Bureau/looping.desktop
echo "Icon=/opt/looping-mcd/looping.png" >> /home/$USER/Bureau/looping.desktop
echo "Exec=wine /opt/looping-mcd/Looping.exe" >> /home/$USER/Bureau/looping.desktop
echo "Name=Looping" >> /home/$USER/Bureau/looping.desktop
Si le script ne fonctionne pas, recopiez le script dans un éditeur
texte (VsCode) et remplacez partout (Ctrl H) $USER
par
votre login.
utiliser pycharm (à l’IUT
/opt/pycharm/bin/pycharm.sh
et
licence server
)
créer une nouvelle application flask (attention : l’explorateur de fichiers de pycharm a parfois du mal à scanner le contenu du dossier HOME monté en NFS)
cette application se présente sous la forme suivante
static
contient tous les éléments (contenus)
dit “static” du site : images, fichiers CSS,
fichiers javascript utilisé par les pages HTML ….)
python app.py
from flask import Flask, request, render_template, redirect, flash, url_for, abort
# application WSGI
# (interface de serveur web python)
# comportements et méthodes d'un serveur web
= Flask(__name__) # instance de classe Flask (en paramètre le nom du module)
app = 'une cle(token) : grain de sel(any random string)'
app.secret_key "TEMPLATES_AUTO_RELOAD"] = True
app.config[
@app.route('/')
@app.route('/hello')
def hello_world(): # put application's code here
return 'Hello World!<a href="hello">lien hello</a>'
if __name__ == '__main__':
=True, port=5000) app.run(debug
python app.py
Créer un fichier launcher.sh
avec les droits d’exécution
: recopier le contenu ci-dessous dans un terminal de pycharm
touch launcher.sh
chmod u+x launcher.sh
echo "flask --debug --app app run --host 0.0.0.0" > launcher.sh
echo "ouvrir le fichier launcher.sh et cliquer sur bouton gauche"
Pour recharger automatiquement une application quand on modifie
une vue (template), ajouter la ligne ci-dessous dans votre code:
app.config["TEMPLATES_AUTO_RELOAD"] = True
( documentation - documentation)
Créer un fichier de nom launcher.bat
par exemple avec
comme contenu :
python -m flask --debug --app app run --host 0.0.0.0
message d’erreur : “Address already in use”
sur Linux : recherchez les numéros des processus qui utilisent le nom “flask” avec la commande ci-dessous :
ps aux | grep flask
puis avec xxxx ou xxxx est l’ID (première colonne du résultat de la commande précédente) du ou des processus flask à tuer (arrêter), faire
kill -9 xxxx
autre solution : changez le port utilisé par le serveur web
flask --debug --app app run --host 0.0.0.0 --port 5002
message d’erreur : ” option –debug” non reconnue
flask --version
pip install --upgrade Flask
# vérifier si les paquets sont installés
pip list
pip3 show pymysql
pip3 show flask
# installer les paquets dans votre $HOME
pip install flask --break-system-packages
pip install pymysql --break-system-packages
# les paquets sont installés sur à l'IUT /usr/local/lib/python3.11/dist-packages
# les paquets sont installés sur ~/.local/lib/pythonxxxxx sur vos machines linux
Il est possible de déactiver l’affichage de conseils
d’incrustation : “File / Settings / Editor ; Inlay Hints ; disable Code
Vision”
Texte souligné en vert : Dé-activer la typo : “File / Settings
/” “Inspection” ; Proofreading” ; Typo”
Dans un terminal :
git clone https://gitlab.com/username/nom_repository.git
cd nom_repository
Tester dans un terminal votre username
avec
votre_clé
git config credential.helper store
# récupérer les modification des autres dans le repository
git pull
# modifiez le contenu du repository
git add --all
git commit -m "modif projet"
git push
# commande pour revenir en arrière dans son code si on a oublier de faire un "pull" (dernière version avec un "commit")
git reset --hard HEAD^
# lister les "commits"
git log
Avec Pycharm : ouvrir un projet avec comme
dossier principal celui où se trouve le fichier app.py
(important)
Créer un fichier .gitignore
avec comme contenu (ça
évitera de mettre sur le dépôt les fichiers ou dossiers
indésirables):
.idea
.gitignore
__pycache__
.git
.env
Dans votre home, dans le fichier ~/.git-credentials
,
vous trouverez le login et la clé
Documentation de dotenv
Commencer par installer le paquet :
pip install python-dotenv
Modifier un peu le début du fichier app.py
#! /usr/bin/python
# -*- coding:utf-8 -*-
from flask import Flask, request, render_template, redirect, flash
= Flask(__name__)
app = 'une cle(token) : grain de sel(any random string)'
app.secret_key
from flask import session, g
import pymysql.cursors
import os # à ajouter
from dotenv import load_dotenv # à ajouter
# à ajouter
load_dotenv()
def get_db():
if 'db' not in g:
= pymysql.connect(
g.db =os.environ.get("HOST"), # à modifier
host=os.environ.get("LOGIN"), # à modifier
user=os.environ.get("PASSWORD"), # à modifier
password=os.environ.get("DATABASE"), # à modifier
database='utf8mb4',
charset=pymysql.cursors.DictCursor
cursorclass
)return g.db
@app.teardown_appcontext
def teardown_db(exception):
= g.pop('db', None)
db if db is not None:
db.close()
Créez un fichier .env
à la racine du projet (au même
niveau que app.py
)
HOST="localhost"
PASSWORD="secret"
LOGIN="login"
DATABASE="BDD_login"
Sur pythonanywhere, remplacer :
load_dotenv()
par 2 lignes comme celles ci-dessous (voir stackoverflow) :
= os.path.expanduser('~/sae_s2_2024') # adjust as appropriate (avec le dossier où se trouve le fichier .env et app.py)
project_folder '.env')) load_dotenv(os.path.join(project_folder,
https://www.nicelydev.com/git