!!!Introduction

__Flask__ s’inspire d’un projet écrit en [Ruby|http://www.ruby-lang.org/fr/], [Sinatra|http://www.sinatrarb.com/]. Contrairement à ce dernier, il est entièrement développé en [Python|http://www.python.org/].

Il repose sur la bibliothèque [Werkzeug|http://werkzeug.pocoo.org/] (ensemble « d’utilisatires » ??WSGI|Web Server Gateway Interface?? en autre), et utilise le système de  »template » [Jinja 2|http://jinja.pocoo.org/] $$La syntaxe est proche de celle utilisée dans [Django|https://www.djangoproject.com/].$$.

Il possède de nombreux atouts :
* Une excellente [documentation|http://flask.pocoo.org/docs/], tout est expliqué
* La possibilité de l’étendre (en ajoutant des [extensions|http://flask.pocoo.org/extensions/])
* Un système de vues assez clair (facilement compréhensible)

!!!Installation

!!Sous openSUSE

Il faut tout d’abord installer le dépôt __devel:languages:python__ (Cf. [Upgrade openSUSE|http://avignu.tuxfamily.org/index.php?post/2011/11/21/Upgrade-openSUSE], la gestion des dépôts). Pensez à bien vérifier que __Werkzeug__ et __Jinja2__ soient installés.

!!Sous FreeBSD

Je suis le mainteneur, donc ce port est mis à jour régulièrement.

!À partir des ports (par compilation)

Il faut mettre à jour l’arbre des ports, si vous avez correctement configuré votre fichier @@/etc/make.conf@@, il suffit de lancer cette commande :

///root@bornem:~ # cd /usr/ports/ ; make update///

On va installer le paquet, en le compilant (c’est assez rapide, car il y a très peu de dépendances) :

///root@bornem:/usr/ports # cd www/py-flask && make install clean///

!À partir d’un paquet pré-compilé

///root@bornem:~ # pkg_add -r py27-Flask///

!!!Hello World !!!

Notre premier exemple se fera à partir du  »shell » Python.

///olivier@bornem:~ $ python
Python 2.7.2 (default, Aug 19 2011, 20:41:43) [GCC] on linux2
Type « help », « copyright », « credits » or « license » for more information.
>>>
>>> from flask import Flask
>>> app = Flask(__name__)
>>>
>>> @app.route(« / »)
… def index():
… return « Hello World! »

>>> with app.test_request_context():
… print index()

Hello World!
>>> ///

Voici une explication concernant la déclaration de notre première variable __@@app@@__ :

> About the First Parameter
>
>The idea of the first parameter is to give Flask an idea what belongs to your application. This name is used to find resources on the file system, can be used by extensions to improve debugging information and a lot more.
>
>So it’s important what you provide there. If you are using a single module, `__name__` is always the correct value. If you however are using a package, it’s usually recommended to hardcode the name of your package there.

On peut bien sûr passer des paramètres à notre fonction :

///>>> @app.route(« /hello/« )
… def hello_user(username= » »):
… return « Hello %s » % username

>>> with app.test_request_context():
… print hello_user()
… print hello_user(« Olivier »)

Hello
Hello Olivier
>>> ///

Voilà j’espère que les prochains billets vous intéresseront.