Aller au contenu

Flask

J'ai découvert Flask, il y a déjà plusieurs années, mais n'ayant jamais vraiment investi du temps dessus, je n'avais jamaiss osé utilisé.

Or à l'occasion d'une session de formation de Ada-flow sur l’utilisation des langages de programmation Python et Javascript j'ai plongé.

Avant de vous parler de mon exploration de Flask, voyons ce qu'est ce projet.

Flask c'est quoi?

Flask est un micro framework open source écrit en Python, voir la documentation, qui une fois installer vous permettra d'accéder aux éléments suivants :

  • Le langage de modèles Jinja documentation ;
  • La boîte à outils WSGI Werkzeug docdocumentation ;
  • MarkupSafe pour éviter les attaques par injection ;
  • ItsDangerous pour garantir l’intégrité des données ;
  • Click pour écrire des applications en ligne de commande ;

De plus Flask est accompagné d'un grand nombre d'extentions référencées sur le site Pypi vous y trouverez surement votre bonheur.

Quelques Extensions

Mes explorations

Vous constaterez que je ne parle pas de Flask-SQLAchemy ayant trouvé que utiliser directement SQLite était à ma portée.

Ma premiere application

La toute première une Liste des lignes (contacts) d'un fichier texte.

Trois URL :

  • /
  • /about
  • /contacts

Aux quels correcpondent trois routes .

@app.route("/")   
def homepage():
   return get_html("index.html")

@app.route("/about")   
def about():   
    return get_html("about.html")

@app.route("/contacts")   
def contact():   
    contactpage = get_html("contacts.html")   
    mycontacts=get_contact()   
    mycontacts.sort()

    change_value=""
    for contact in mycontacts :
        change_value=change_value + "<p>" + contact + "</p>"

    return contactpage.replace("$$MesContacts$$",change_value)

Comment gérer les méthodes GET et POST

Ensuite quelques extension pour préciser la gestion des méthodes qu'un des participants avait du mal à comprendre.

Utiliser le moteur de template de Flask

Vous trouverez ici le résultat de mes premiers pas dans cet univers. Mon exemple est construit à partir de Primer on Jinja Templating que je vous recommande de consulter pas seulement pour jinja2 mais aussi pour l'utilisation de jinja2 dans Flask.

Site multi-langues

J'ai après avoir testé l'utilisation de Flask-babel, fait un fork du dépot de départ de la démo de Hazzill Rodriguez] afin de montée de version Babel.

Voici le dépôt de ce test, qui m'a servi de base pour développer le site de la bibliotheque d'espéranto de Lausanne


Dernière mise à jour: April 24, 2023
Créé: April 21, 2023