Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
python:flask:setup_nouveau_projet [2021/04/28 04:45] marclebrun [Application de base] |
python:flask:setup_nouveau_projet [2022/10/19 14:25] (Version actuelle) marclebrun [Application de base] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
===== Création d'un projet ===== | ===== Création d'un projet ===== | ||
- | Créer un nouveau dossier: | + | Créer un nouveau dossier pour le projet "**hello_world**" : |
<code bash> | <code bash> | ||
Ligne 35: | Ligne 35: | ||
flask --version | flask --version | ||
- | Python 3.8.5 | + | Python 3.10.6 |
- | Flask 1.1.2 | + | Flask 2.2.2 |
- | Werkzeug 1.0.1 | + | Werkzeug 2.2.2 |
</code> | </code> | ||
Ligne 59: | Ligne 59: | ||
├── .env | ├── .env | ||
├── .gitignore | ├── .gitignore | ||
- | ├── requirements.txt | + | └── requirements.txt |
- | └── run.py | + | |
</code> | </code> | ||
Ligne 66: | Ligne 65: | ||
<code bash .env> | <code bash .env> | ||
- | FLASK_APP=run.py | + | FLASK_APP = app |
- | FLASK_ENV=development | + | FLASK_DEBUG = 1 |
- | + | ||
- | SECRET_KEY='...(chaîne aléatoire)...' | + | |
- | + | ||
- | DBPATH=... | + | |
- | + | ||
- | ... | + | |
</code> | </code> | ||
- | Pour générer la clé secrète, utiliser la commande suivante : | + | Créer un fichier **.gitignore** selon la page [[divers:git:gitignore_python|]] |
- | <code bash> | + | Y ajouter le fichier **config.py** et les dossiers de données à ne pas commiter : |
- | cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1 | + | |
- | </code> | + | |
- | + | ||
- | Créer un fichier **.gitignore** : | + | |
<code text .gitignore> | <code text .gitignore> | ||
- | __pycache__/ | + | ... |
- | venv/ | + | |
data/ | data/ | ||
.vscode/ | .vscode/ | ||
- | .env | + | config.py |
</code> | </code> | ||
Ligne 110: | Ligne 99: | ||
</code> | </code> | ||
- | Et le fichier **run.py** (utilisé par le serveur local) : | + | ===== GIT ===== |
- | <code python run.py> | + | Initialiser le dépôt **git** local et faire un premier commit : |
- | from app import app | + | |
- | if __name__ == "__main__": | + | <code bash> |
- | app.run(host="0.0.0.0", port=5000, debug=True) | + | git init |
+ | git add --all | ||
+ | git commit -m "Initial commit" | ||
</code> | </code> | ||
- | **host="0.0.0.0"** : permet que la page soit accessible | + | Créer le dépôt distant selon la page [[divers:git:depots_sur_serveur_prive]] |
- | depuis une autre machine, sinon c'est limité à **localhost**. | + | |
- | Donc dans le cas où on développe sur un serveur distant, c'est mieux | + | |
- | de pouvoir s'y connecter depuis sa machine locale. | + | |
- | **debug=True** : pendant le développement, détecte les changements | + | ===== Configuration de l'application ===== |
- | et évite d'avoir à stopper et redémarrer le serveur sans cesse. | + | |
- | Initialiser le dépôt **git** et faire un premier commit : | + | Exemple de fichier **config.py** : |
- | <code bash> | + | <code python> |
- | git init | + | import os |
- | git add . | + | |
- | git commit -m "Initial commit" | + | 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/') | ||
+ | </code> | ||
+ | |||
+ | Pour générer la clé secrète, voir la page [[python:generer_secret_key]] | ||
+ | |||
+ | Chargement des valeurs dans l'objet **app** : | ||
+ | |||
+ | <code python> | ||
+ | app = Flask(__name__) | ||
+ | app.config.from_object('config') | ||
</code> | </code> | ||
Ligne 152: | Ligne 153: | ||
[[http://127.0.0.1:5000/]] | [[http://127.0.0.1:5000/]] | ||
+ | Pour qu'il soit accessible depuis une autre machine sur le réseau, ajouter : | ||
+ | |||
+ | <code bash> | ||
+ | flask run --host=0.0.0.0 | ||
+ | </code> | ||