Sylvain Fankhauser
Powerhouse
Un framework…
ll ne fournit que le strict nécessaire
Principaux composants de Flask
Quelques autres frameworks web
Comparaison rapide avec Django
Pourquoi Flask alors ?
WordPress est-il un framework ?
CMS
Framework
Le cycle requête - réponse
def home(request):
return HttpResponse(
"<html><body><h1>Hello world!</h1></body></html>"
)
from flask import Flask, request
app = Flask(__name__)
def home():
return "<html><body><h1>Hello world!</h1></body></html>"
Flask est un peu différent
Exemple avec Flask:
Par exemple:
python -m pip install flask
Création d’un environnement virtuel :
python -m venv mon_dossier
env1
Python 3.10
Flask 2.2.2
env2
Python 3.9
Flask 1.1.4
env3
Python 3.11
Django 3.2.11
Pour utiliser l’environnement virtuel :
./mon_env/bin/python -m flask run
Sur Windows:
mon_env\Scripts\python -m flask run
Pour activer l’environnement virtuel :
source /mon_env/bin/activate
Puis on peut utiliser python normalement :
python -m flask run
Pour désactiver l’environnement :
deactivate
from flask import Flask, request
app = Flask(__name__)
def home():
return "<html><body><h1>Hello world!</h1></body></html>"
Notre première page Flask
Lancez le serveur :
flask run
Puis naviguez vers http://localhost:5000/
Il manque quelque chose pour que ça fonctionne !
Il faut brancher les fonctions !
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def home():
return "<html><body><h1>Hello world!</h1></body></html>"
Le branchement se fait avec @app.route
app.py
Lancez le serveur :
flask run
Puis naviguez vers http://localhost:5000/
Créez une deuxième page et mettez un lien sur chaque page pour passer de l’une à l’autre
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def home():
return "<html><body><h1>Hello world!</h1></body></html>"
app.py
😕
Les templates
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return render_template("home.html")
app.py
😌
<html>
<body>
<h1>Hello world!</h1>
</body>
</html>
templates/home.html
✨
✨
✨
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return render_template("home.html", name="Sylvain")
app.py
<html>
<body>
<h1>Salut {{ name }}!</h1>
</body>
</html>
templates/home.html
Les variables de templates
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return render_template("home.html", people=["Julie", "Cyril", "Caipi"])
app.py
<html>
<body>
<h1>Les gens chics</h1>
<ul>
{% for person in people %}
<li>{{ person }}</li>
{% endfor %}
</ul>
</body>
</html>
templates/home.html
Les template tags
🤔 Place aux questions 🧐