====== Setup Nouveau Projet ======
===== Création d'un projet =====
Créer un nouveau dossier pour le projet "**hello_world**" :
mkdir /home/marc/hello_world
cd /home/marc/hello_world
Création d'un Virtual Environment :
python3 -m venv venv
source venv/bin/activate
Mise à jour de PIP :
pip install --upgrade pip
Intallation des packages :
pip install flask
pip install python-dotenv
Vérifier la version :
flask --version
Python 3.10.6
Flask 2.2.2
Werkzeug 2.2.2
===== Application de base =====
/home/marc/hello_world
├── app
│ ├── static
│ │ ├── css
│ │ ├── js
│ │ ├── img
│ │ └── ...
│ ├── templates
│ │ ├── index.html
│ │ └── ...
│ ├── __init__.py
│ └── ...
├── venv
│ └── ...
├── .env
├── .gitignore
└── requirements.txt
Définir les variables d'environnement (fichier **.env**) :
FLASK_APP = app
FLASK_DEBUG = 1
Créer un fichier **.gitignore** selon la page [[divers:git:gitignore_python|]]
Y ajouter le fichier **config.py** et les dossiers de données à ne pas commiter :
...
data/
.vscode/
config.py
Générer le fichier **requirements.txt** de PIP :
pip freeze > requirements.txt
Créer un fichier **%%__init__.py%%** minimal :
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Hello World !
"
===== GIT =====
Initialiser le dépôt **git** local et faire un premier commit :
git init
git add --all
git commit -m "Initial commit"
Créer le dépôt distant selon la page [[divers:git:depots_sur_serveur_prive]]
===== Configuration de l'application =====
Exemple de fichier **config.py** :
import os
SECRET_KEY = "... clé secrète ... voir ci-dessous ..."
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
PATH_IMAGES = os.path.join(BASE_DIR, 'images/')
PATH_DATABASE = os.path.join(BASE_DIR, 'data/')
Pour générer la clé secrète, voir la page [[python:generer_secret_key]]
Chargement des valeurs dans l'objet **app** :
app = Flask(__name__)
app.config.from_object('config')
===== Lancement du serveur de développement =====
Activer l'environnement virtuel si ce n'est pas encore fait.
source venv/bin/activate
Lancement du serveur :
flask run
Visiter le site (sur le port défini dans **.env**) :
[[http://127.0.0.1:5000/]]
Pour qu'il soit accessible depuis une autre machine sur le réseau, ajouter :
flask run --host=0.0.0.0