Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Si vous voulez réaliser de véritables applications web avec Flask, il vous faudra produire des templates.
Un template est un modèle qui génère du code HTML. Il s'agit d'un fichier qui a pour extension .htm (ou .html).
À la différence d'un document HTML standard, un template peut contenir des données
dynamiques (des variables, des expressions, des conditions, des boucles).
Ces instructions sont traduites en HTML grâce à un "moteur de templates".
Flask utilise le moteur de template Jinja.
Lorsque vous appelez render_template() Flask active Jinja.
Créez à la racine de C: un nouveau dossier et nommez le "flask_template".
À l'intérieur de ce dossier créez un sous répertoire nommé "templates" ; Ce nom est impératif.
C'est la composante "Vues" dans le cadre du modèle MVT.
Il précise pour chaque route les traitements dans le cadre d'une "vue".
Une "vue" est une fonction Python associée à une route.
Ce fichier "application.py" est donc le "chef d'orchestre" de l'application et doit être stocké à la racine
du dossier "flask_templates".
from flask import Flask, render_template
from datetime import *
app = Flask(__name__)
membres =[
{'nom' : 'Dumont', 'mail':'dumont@free.fr', 'genre': 'm'},
{'nom' : 'Durand', 'mail':'durand@orange.fr','genre': 'f'},
{'nom' : 'Dumoulin', 'mail':'dumoulin@gmail.com', 'genre': 'm'},
{'nom' : 'Tailleur', 'mail':'tailleur@free.fr', 'genre': 'f'},
{'nom' : 'Lefranc', 'mail':'lefranc@free.fr','genre': 'm'},
{'nom' : 'lefèvre', 'mail':'lefevre@orange.fr','genre': 'f'}
]
@app.route('/')
def accueil():
return render_template("index.htm")
@app.route('/now')
def now():
maintenant = datetime.now()
h = maintenant.hour
mn = maintenant.minute
return render_template("now.htm", heure = h, minute =mn)
@app.route("/adherents")
def adherents():
return render_template("adherents.htm", liste = membres)
@app.route("/couleurs")
def couleurs():
return render_template("boite_couleurs.htm")
if __name__ == "__main__":
app.run(debug = True)
Quatre routes ; chaque route associée à une "vue" (fonction python).
On peut donner à la vue le nom de la route (sauf bien sûr '/')
Pour que le moteur de templates fonctionne, il faut importer la fonction render_template.
Pour manipuler les dates il faut importer le module datetime.
Il s'agit d'une liste de six dictionnaires.
Tous les dictionnaires de la liste doivent avoir les mêmes clés ; ici les clés sont : nom, mail et genre.
Les templates et documents HTML standards doivent impérativement être stockés dans le sous dossier "templates".
Il est associé à la route "/".
Le code ci-dessous (à dérouler):
Observez attentivement les valeurs des attributs href des balises A. Ce sont des routes et comme chaque route est associée à une vue et que chaque vue affiche un template (mais pas seulement) ...
Elle est associée à la route "/now". Le code de ce template.
Le code ci-dessous (à dérouler):
Le code contient deux variables (indiquées par une double paire d'accolades) ; c'est la notation surnommée "moustache".
Le moteur de templates Jinja interprète ces variables et retourner du HTML au navigateur.
Il est associé à la route "/adherents". Le code de ce template ci-dessous.
Le code ci-dessous (à dérouler):
Notez la variable liste qui correspond au dictionnaire "membres" dans le script.
Grâce à des curseurs (input type range) vous composez une couleur et vous obtenez son code RGBA.
Il serait impossible de réaliser cette interface avec tkinter car ce module ignore la notation RGB des couleurs.
Le code ci-dessous (à dérouler) :