et Flask et installation des packages via pip :
<code bash>
#création d'un répertoire dédié à l'applica... ip install Flask Flask-SQLAlchemy Flask-Migrate
</code>
===== Création de l'application Flask =====
C... lication Flask dans le module Python ''app.py''
<code python app.py>
from flask import Flask
from flask... ef index():
return "<h1>Hello, World!</h1>"
</code>
Le module Python app.py définit la classe ''Pro
lates :
* ''%%{{ }}%%'' Affiche le résultat du code Python (balises HTML échappées) ;
* ''%%{% %}%%'' Code Python à interpréter ;
* ''%%{# #}%%'' Commentaires.
<code html [highlight_lines_extra="8,9"]>
<!DOCTYPE htm... <h2>Welcome to FlaskApp!</h2>
</body>
</html>
</code>
===== Rendu du template =====
Pour pouvoir g
espondre cette URL à une route définie dans votre code. Si une correspondance est trouvée, Flask exécute... route associe une fonction à une URL statique :
<code python [highlight_lines_extra="1"]>
@app.route('... /hello')
def hello():
return 'Hello, World'
</code>
Dans l'exemple ci-dessus, le décorateur à la pr... TE** il faudra définir l'argument ''methods'' :
<code python>
@app.route('/contact', methods=['GET', 'P
la définition ayant présenté la problématique :
<code python [enable_line_numbers="true", highlight_lin... """Constructeur """
self.label = label
</code>
La classe ''Category'' utilise un modèle(patter... xistant dans la table(relation) **categories**.
<code python>
>>> # Depuis flask shell
>>> db.create_al... a fonctionné sans lever d'exception
>>> quit()
</code>
via le client **sqlite3** en ligne de commande,
jet et installer le paquetage **Flask-Login** :
<code bash>
pip install Flask-Login
</code>
===== Création d'un Blueprint =====
On va s'appuyer sur le syst... ilement réimportés dans un autre projet Flask.
<code bash>
# Création du paquetage Python pour le Blue... auth/__init__.py
touch auth/models/__init__.py
</code>
Le dunder init du paquetage contient l'instanci
nsion, installer le module **Flask-SQLAlchemy**
<code bash>
# Dans votre environnement virtuel
pip install Flask-SQLAlchemy
</code>
===== Options de configuration =====
Lors de l... CHEMY_DATABASE_URI'' comme indiqué ci-dessous :
<code python>
# Pour utiliser une base SQLite en mémoir... config["SQLALCHEMY_DATABASE_URI"] = 'sqlite://'
</code>
Il peut être également utile d' [[dev:python:
s un exemple simple de commande sans argument :
<code python>
from flask import Flask
app = Flask(__na... "Show application version."""
print("0.0.1")
</code>
La commande ''version'' retourne simplement le ... nt invoquer la commande depuis l'interpréteur :
<code bash>
flask version
</code>
===== Groupes de commandes =====
Il est possible d'organiser les comman
ept de **fixtures** pour désigner des éléments de code pouvant être réutilisés entre les tests. Ces fixt... fixtures dans le module ''tests/conftest.py''.
<code python conftest.py>
# tests/conftest.py
import p... i_runner(app):
return app.test_cli_runner()
</code>
Dans cet exemple 3 fixtures sont crées ''app'',... ce de tests, on se place à la racine du projet :
<code bash>
python -m pytest
</code>
===== Envoyer des
réation d'un dépô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 et on installe les modules flask et flask_sqlalchemy
<code bash>
source .venv/bin/activate
pip install Flask Flask-SQLAlchemy
</code>
===== Hello =====
Par défaut Flask lance l'ap
ise conjointement à la fonction ''url_for()'' :
<code python>
from flask import Flask, redirect, url_fo... t_example():
return redirect(url_for('home'), code=301)
</code>
On peut spécifier un [[https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP|code d'état HTML]] via l'option ''code''. L
bjet Flask. Cette approche monolithique permet de coder rapidement une preuve de concept (PoC), un proto... n:flask:blueprints|Blueprint]] pour structurer le code en unités fonctionnelles selon ses besoins.
<code>
/home/user/Projects/aAppProject
├── myapp/ ... #
├── install
└── MANIFEST.in
</code>
Pour lancer l'application :
<code bash>
cd /ho
aquetage python-dotenv)
===== Exemples =====
<code bash>
flask --app src/gcomp run
</code>
Change le répertoire de travail (entre dans le dossier ''src'') puis charge le module ou paquetage ''gcomp''
<code bash>
flask --app 'gcomp:create_app("dev")' shell
</code>
Importe le module ou paquetage gcomp puis utili
le. Depuis votre environnement virtuel Python :
<code bash>
pip install Flask Flask-Maintenance
</code>
<note warning>
Au moment de l'écriture de cette note... section sources proposées ci-dessous.
</note>
<code python app.py>
"""
Application Flask monolithique... e):
return render_template('503.html'), 503
</code>
Pour activer/désactiver le mode maintenance on
x classes du modèle et la relation one-to-many.
<code python app.py [enable_line_numbers=“true”]>
from ... l'intermédiaire de l'extension
db.init_app(app)
</code>
* Lignes 7 et 25 : les classes doivent héri... lancer l'application flask en mode interactif :
<code bash>
flask shell
</code>
<code python>
>>> # Afficher les références
>>> dir()
>>> # Création de la