XD blog

blog page

flask


2014-12-21 Unit test a Flask application

It is usually quite annoying to develop a web application and to test the code by just running it and checking it produces what you expect for a given request. It would be more simple to write a function which launches the web application on a local machine and retrieves the content of a given page. That describes what a unit test could be used for.

I used Flask to do it. I hesitated to choose bottle but I needed to be able to shutdown the application by some means. I found a way for Flask faster than for Bottle. That's why I used the first one.


more...

2013-05-09 Créer un site web en Python : Flask ou Django ou Pelican

Django est le framwork le plus connu quand il s'agit de créer un site web en Python. Le projet a démarré il y a plusieurs années (2005), il est robuste et il est maintenu. En contre partie, le coût d'entrée est assez lourd.

Récemment, j'ai découvert Flask qui est plus léger et suffit largement lorsqu'on veut construire un site internet à usage interne. Il nécessite l'installation des modules JinJa (disponible pour Python 3) et Werkzeug (non disponible pour Python 3). L'installation de ces modules se fait simplement avec pip (pip install <module>, voir article 2013-05-10 : Installer un package simplement avec Python : pip).

Pour démarrer avec Flash, il suffit de lire la page suivante : Introduction à Flask. Le code d'un service web hello world :

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Bonjour !"

if __name__ == "__main__":
    app.run()
Qu'on lance de cette façon :
$ python hello.py
 * Running on http://localhost:5000/
Si j'avais su, j'aurais probablement créé ce blog de cette façon en m'appuyant sur cet exemple. Flask permet l'utilisation d'une base de données de type SQLlite. Différentes configurations sont disponibles ici pour interacer Flask avec Heroku, MongoDB, CouchDB, OpenID...

Pour ceux qui souhaitent créer un blog en Python (et avec Python 2.7 ou 3), il existe aussi le package pelican. Il dépend des packages, feedgenerator, pygments, docutils, pytz, blinker, unidecode, six, automatiquement installé avec pip (pip install pelican).

Vous trouverez d'autres ressources pour créer un site sur ce blog : ScopArt.


Xavier Dupré