class: center, middle # ![Flask](images/flask.svg) --- class: center, middle # Flask est un
**micro-framework** web
écrit en
**python** --- # Pourquoi Python? ### Syntaxe lisible et puissante ### Peu de code - Syntaxe économique - *Batteries included* - Écosystème très actif ### Donc - Développement ultra-rapide - Maintenance simplifiée ### Bonus - Langage généraliste --- background-image: url(images/ilovepython.jpg) # Pourquoi Python? (la vraie raison) --- class: center, middle # *Micro*-framework? --- background-image: url(images/bigknife.jpg) ??? - Routage des URLs - ORM - Système de *templates* - Interface d'admin automatique - Formulaires avec validation - Gestion du cache - Internationalisation - Serveur de développement - Implémentation WSGI ou serveur de production - ... --- background-image: url(images/smallknife.jpg) ??? - Routage - Implémentation WSGI/serveur de production - ... (pas de consensus) ## Il y a donc une continuité entre les micro-frameworks et les frameworks! --- class: middle .quotation[ The “micro” in microframework means Flask aims to keep the core simple but extensible. Flask won’t make many decisions for you, such as what database to use. Those decisions that it does make, such as what templating engine to use, are easy to change. ] .source[ http://flask.pocoo.org/docs/1.0/foreword/#what-does-micro-mean ] --- # Qu'est-ce que *flask*? .quotation[ Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. And before you ask: It's BSD licensed! ] .source[ http://flask.pocoo.org/ ] Fournit: - Routing - WSGI En plus, notamment: - Jinja 2 templates - Serveur de développement avec [débogueur](http://localhost:5000/error) - Tests, sessions, ... - Documentation! --- class: center, middle # Outils incontournables --- # venv & pip Développement $ python -m venv my_great_app $ source my_great_app/bin/activate $ pip install flask $ pip install pygal $ pip freeze > requirements.txt Déploiement $ python -m venv my_great_app $ source my_great_app/bin/activate $ pip install -r requirements.txt Permet de - recréer un environnement de manière simple et prédictible - tester les mises à jour sans tout casser - mettre à jour des projets séparément --- class: center, middle # [Ce qu'on va faire...](http://localhost:5000) --- # Et tout ça en... # ![Flask](images/cloc.jpg) --- class: center, middle # À vous de jouer!
[http://matthieuamiguet.ch/flask](http://matthieuamiguet.ch/flask)