Select Git revision
developpement.md
BRAUX Emmanuel authored
developpement.md 3.63 KiB
Déploiement en mode développement
Description
En mode développement, l'application s'appuie sur une base de données locale Sqlite3.
Flask propose un serveur http de developpement (run) qui permet de vérifier rapidement le fonctionnement du programme. Il permet également de développer sans installer un serveur http sur la machine de développement:
- Par défaut, le serveur fonctionne sur le port 5000 à l’adresse IP 127.0.0.1.
- Vous pouvez lui transmettre explicitement une adresse IP et un numéro de port.
- Le serveur de développement recharge automatiquement le code Python lors de chaque requête si nécessaire.
- N’UTILISEZ PAS CE SERVEUR DANS UN ENVIRONNEMENT DE PRODUCTION. Il n’a pas fait l’objet d’audits de sécurité ni de tests de performance.
Pour le frontend, le module "http" de python est utilisé.
Préparation du système
- mise à jour du système (optionnel)
sudo apt update && sudo apt upgrade -y
- Installation des prérequis (optionnel)
sudo apt -y install git sudo vim python3-pip
Initialisation de l'application
Pré-requis Python
- Installer python3, pip3 et venv
sudo apt -y install python3 python3-pip python3-venv
- Vérifier
python3 --version
# Python 3.10.6
pip3 --version
# pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
python3 -m venv -h
# ...
# Creates virtual Python environments in one or more target directories.
# ...
Récupération du projet
cd $HOME
git clone https://gitlab.imt-atlantique.fr/vapormap/vapormap-app.git vapormap-dev
cd vapormap-dev
Création d'un environnement Python virtuel
cd $HOME/vapormap-dev
mkdir venv
python3 -m venv ./venv
Lancement de l'API
- Initialisation de l'environnement Python
cd $HOME/vapormap-dev
source venv/bin/activate
- Installation des "requirements" de l'application
cd $HOME/vapormap-dev/app
pip install -r requirements/development.txt
- Création de la DB sqlite
cd $HOME/vapormap-dev/app/api
export SETTINGS_FILE="development"
export FLASK_APP=app
flask db upgrade
- Lancement de l'application
export SETTINGS_FILE="development"
cd $HOME/vapormap-dev/app/api
flask run
- Test :
- accès à l'API : dans une autre fenêtre de terminal
curl http://localhost:5000/api/points/?format=json
- Réponse
[]
- A la fin des tests :
- pour arrêter le serveur
CONTROL-C.
- pour sortir du venv
deactivate
Lancement du frontend
- Ouvrir un autre terminal, et initialiser l'environnement python
cd $HOME/vapormap-dev
source venv/bin/activate
- Configurer l'accès à l'API
cd $HOME/vapormap-dev/frontend/
# l'API en mode developpement s'exectu
export VAPORMAP_BACKEND=localhost
export VAPORMAP_BACKEND_PORT=5000
envsubst '${VAPORMAP_BACKEND},${VAPORMAP_BACKEND_PORT}' < config.json.template > config.json
Attention, pour VAPORMAP_BACKEND
vous devez indiquer une adresse accessible depuis le navigateur. localhost
ne fonctionne que si vous travaillez sur votre machine locale, sinon il faut indiquer l'adresse IP publique de votre VM, ou de votre instance Cloud.
- Lancer le frontend
cd $HOME/vapormap-dev/frontend/
python -m http.server
-
Test de l'accès à l'application
- Depuis un navigateur : http://localhost:8000
- Rem : si vous ne travaillez pas sur votre machine locale, l'adresse IP publique de votre VM, ou de votre instance Cloud.
-
A la fin des tests :
- pour arrêter le serveur
CONTROL-C.
- pour sortir du venv
deactivate