web complète pouvant être retournée au client.
<note>
Par défaut, le framework Flask est paramétré pou... sous-dossier ''./templates'' de l'application.
</note>
<code python>
from flask import Flask, render_t... emplate('index.html', msg=msg)
</code>
<note>
Flash utilise la notion de routes pour associer ... page web). confère [[dev:python:flask:routage]]
</note>
===== Objets accessibles depuis le template ===
us dossier ''./migrations/versions'' du projet.
<note>
Le dossier ''./migrations'' doit être ajouté à v... ision comme les autres sources de votre projet.
</note>
A ce stade, le script existe mais n'a pas été a... x fonctions : ''upgrade()'' et ''downgrade()''.
<note warning>
Les scripts de migration sont générés au... est donc recommandé de vérifier le code généré.
</note>
Si on affiche le contenu de la base on peut vér
ppProject
flask --app myapp run --debug
</code>
<note>
Si le fichier est nommé ''app.py'' ou ''wsgi.py'... l'argument ''%%--app%%'' n'est pas nécessaire.
</note>
<note>
Pour éviter de préciser systématiquement l'argument ''%%--app%%'' on peut également définir la variable d'environnement ''FLASK_APP''.
</note>
===== Démarrage de l'application Flask =====
sage personnalisé et le code d'erreur HTTP 404.
<note>
Un accès répété à des ressources non existantes ... nses d'autoprotection par exemple via fail2ban.
</note>
===== Lister les routes =====
Pour afficher le... ** permet de définir le nom (FQDN) du serveur.
<note>
Lorsque la variable est définie, le serveur de d... doit être lancé avec l'argument **%%--host%%**
</note>
<code python config.py>
# FQDN + port
SERVER_NA
sh>
pip install Flask Flask-Maintenance
</code>
<note warning>
Au moment de l'écriture de cette note, le package Flask-Maintenance 0.0.1 provoquait une erreu... t dans la section sources proposées ci-dessous.
</note>
<code python app.py>
"""
Application Flask mon
n
toolbar = DebugToolbarExtension(app)
</code>
<note>
Pour que la barre puisse être correctement insér... réponse doit contenir les balises <body></body>
</note>
===== Flask-Marshmallow =====
Marshmallow est... données et leur cohérence entre deux versions. La note ...
===== Références =====
* [[https://flask.
ion des contraintes sur une base SQLite3 ======
Notes concernant l'activation des contraintes sur clé ... sted_schema off
writable_schema off
</code>
<note>
Si on passe cette variable de configuration a ''... e requête, on obtient le comportement attendu !
</note>
<file txt [highlight_lines_extra="4"]>
sqlite>
n Flask : elle retourne un objet de type Flask.
<note>
Le framework Flask appelle par défaut l'applicat... ser son nom à la CLI flask lors de l'exécution.
</note>
===== Références =====
* https://flask.p
der_template('contact.html', form=form)
</code>
<note>
L'exemple montre bien qu'il n'est pas nécessaire... de FlaskForm) : il sera automatiquement chargé.
</note>
La méthode ''validate_on_submit()'' vérifie que
ry id=2 name="memo" builtin=True icon=/static/img/notepad_9021656_icon.png marker_icon=None >]
</code>
... associations entre tables sont abordées dans les notes suivantes :
* Définir des associations one-to-
alise pour les transmettre au script Javascript
<note>
Selon le type de l'objet, il faudra définir une méthode permettant sa sérialisation.
</note>
<code python>
</code>
Depuis le template, Da
ement via sa fonction **auto_delete_orphans**.
<note>
Pour pouvoir utiliser la fonction ''auto_delete_... oivent utiliser l'option historique **backref**
</note>
===== Références =====
* [[https://www.digi
erminal :
<code bash>
flask run --debug
</code>
<note>
Avec l' option **%%--debug%%**, le serveur web r... iers lorsque des modification sont apportées.
</note>
Pour afficher les routes existantes pour l'appl