Flask

Presenter Notes

Flask est un
micro-framework web
écrit en
python

Presenter Notes

Pourquoi Python?

Peu de code (syntaxe économique, batteries included, écosystème très actif)

  • Développement ultra-rapide
  • Maintenance simplifiée

En plus:

  • Langage généraliste

Presenter Notes

Python 2 ou 3?

http://flask.pocoo.org/docs/0.10/advanced_foreword/#the-status-of-python-3

Currently the Python community is in the process of improving libraries to support the new iteration of the Python programming language. While the situation is greatly improving there are still some issues that make it hard for users to switch over to Python 3 just now.

[...]

We strongly recommend using Python 2.6 and 2.7 with activated Python 3 warnings during development.

Presenter Notes

Micro-framework?

Presenter Notes

Un framework comme Django fournit...

  • 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/...
  • ...
Mais si on a pas besoin de tout ça?

Presenter Notes

Un micro-framework fournira...

  • Routage
  • Implémentation WSGI/...

Et éventuellement...

  • Serveur de développement
  • Système de templates
  • ...
Il y a donc une continuité entre les
micro-frameworks et les frameworks!

Presenter Notes

Qu'est-ce que flask?

Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. And before you ask: It's BSD licensed! (http://flask.pocoo.org/)

  • Routing
  • WSGI

En plus, notamment:

  • Jinja 2 templates
  • Serveur de développement avec débogueur
  • Tests, sessions, ...
  • Documentation!

Presenter Notes

Outils incontournables

Presenter Notes

virtualenv & pip

(+virtualenvwrapper sous Linux)

Développement

$ mkvirtualenv my_great_app
$ pip install flask
$ pip install pygal
$ pip freeze > requirements.txt

Déploiement

$ mkvirtualenv my_great_app
$ 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
  • migrer des projets séparément

Presenter Notes

Distributed version control system (git/mercurial/...)


"Make easy things easy and hard things possible"

workflows

(Git Workflows That Work)

Presenter Notes

Presenter Notes

Presenter Notes