{{tag>dev python flask web api}}
====== Flask ======
:TODO_DOCUPDATE:
Flask n'impose aucune arbore... commandations s'imposent. Un version monolithique deviendrait difficilement maintenable.
Le framework Flask propose le système de [[dev:python:flask:blueprints|Blueprint]] pour structur... ents
flask --debug --app 'app:create_app(context="development")' run
</code>
Voir également la note [[
{{tag>dev python flask templates jinja2}}
====== Flask : Utilisation des templates ======
===== Gén... ploitable par le client (une page web). confère [[dev:python:flask:routage]]
</note>
===== Objets acce... pages sont définis en dur dans les templates, ils deviendront invalides lorsque les routes de l'applica... * ;
* Chaque enfant héritant du document parent devra définit le contenu des **placeholders** ;
{{tag>dev python framework flask}}
====== Flask : Démarrer l'application depuis la CLI ======
La com... fonctions n'utilisent pas ces noms par défaut, on devra fournir à la commande flask le moyen de lancer ... omp''
<code bash>
flask --app 'gcomp:create_app("dev")' shell
</code>
Importe le module ou paquetage ... cation factory ''create_app'' avec un argument ''"dev"''.
<code bash>
FLASK_APP="src/gcomp" flask run
{{tag>dev python sql sqlalchemy relation}}
:TODO_DOCUPDATE:
====== Flask-SQLAlchemy : relation de com... on de composition est une forme particulière de [[dev:python:flask:flask-sqlalchemy:relation_one-to-man... est détruit, les enregistrements sièges associés devront l'être également.
===== MLD et contraintes ... y-keys-in-sqlalchemy-b378fb975e9b
* https://www.devgem.io/posts/how-to-correctly-define-a-primary-key
{{tag>dev python flask web formulaire}}
:TODO_DOCUPDATE:
====== Flask : Créer des formulaires via Fla... un**:
<code bash>
FLASK_APP=helloforms FLASK_ENV=development flask run --debug
</code>
A ce stade la ... 'helloforms'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production dep
{{tag>dev python flask authentification}}
:TODO:
====== Flask : Gérer l'authentification avec Flask-L... a fonction contrôleur traitant l'authentification devra appeler la fonction ''flask_login.utils.login_u... * La fonction contrôleur traitant la déconnexion devra appeler la fonction ''flask_login.utils.logout_
{{tag>dev python web flask extensions}}
====== Flask : A propos des extensions ======
Les extensions... t websites
* Flask-DebugToolbar - useful in the development phase
* Flask-Limiter - Limiter/control... mode maintenance
* Flask-Marshmallow - for API development
* Flask-Migrate - Gestion des migration
{{tag>dev python sql sqlalchemy relation}}
====== Flask-SQLAlchemy : Définir une relation d'agrégatio... tion d'agrégation est une forme particulière de [[dev:python:flask:flask-sqlalchemy:relation_one-to-man... MLD est abordé dans le cours [[cours:informatique:dev:db:modeliser_bases_de_donnees:340_transformer_ass
{{tag>dev python flask sqlalchemy tutoriel}}
====== Exemple d'Application web avec Flask et le module... ôt et d'un environnement virtuel
<code bash>
cd ~/dev
git init webstore
cd ~/dev/webstore
python3 -m venv .venv
</code>
On active l'environnement virtuel
{{tag>dev python orm flask sqlachemy}}
:TODO_DOCUPDATE:
====== L'extension Flask-SQLAlchemy ======
=... ://'
</code>
Il peut être également utile d' [[dev:python:flask:extensions:flask-sqlalchemy:afficher
{{tag>dev python flask web upload download file fichier}}
====== Flask : Upload/Download de fichiers ... n>
# Valeur en Octets
# Ici les fichiers transmis devront faire moins de 16 Mo
app.config['MAX_CONTENT