Python + Flask + PythonAnywhere : Partie 3 - Flask sous Windows

Cet article fait suite à "Python + Flask + PythonAnywhere : Partie 2 - Pourquoi Flask ?
Cette série d'articles se penche sur:
  • L'évaluation d'un projet web basé sur le Micro FrameWork Flask écrit en Python.
  • Préparation d'un environnement sous Windows (Python et Flask)
  • Mise-en-ligne et configuration du projet chez l'hébergeur PythonAnywhere.com (qui fait de l'hébergement autour de Python).
Introduction
Bien que Flask s'installe et fonctionne parfaitement sous les environnements Linux (ma préférence), il faut bien admettre que la plupart des sociétés utilisent Windows.
Cette partie du tutoriel va donc se pencher sur l'installation de Flask et test sous Windows.
Dans cet article nous allons:
  1. Installer Python 2.7 pour Windows
  2. Installer Flask
  3. Tester l'installation de Flask
Installation de Python 2.7 pour Windows
La première chose à faire est d'installer Python pour Windows sur la machine.
Le plus simple c'est encore d'aller télécharger la version disponible pour Windows sur le site de www.python.org

https://www.python.org/downloads/windows/

Bien que Python 3 soit un choix d'avenir, nous allons opter pour l'installation de Python 2.7 car ce dernier reste encore plus que très répandu et sera une valeur plus sure lors du passage en hosting.

Note: Depuis l'écriture de cet article j'ai appris que PythonAnywhere.com offrait un bon support de Python 3... mais je recommande néanmoins de poursuivre en Python 2.7 quitte à refaire ensuite un essai en Python 3.


  • Installez python pour tous les utilisateurs (all users)
  • Laissez le répertoire par défaut "c:\python27"




Attention: Activez l'option "Add python.exe to path", cela permet d'activer rapidement python en tapant "python" sur une ligne de commande.



Voila, nous disposons maintenant d'une installation de python qui se trouve dans c:\Python27

Répertoire de travail
Afin de ne pas tout mélanger, je vous propose de créer un répertoire de travail pour y stocker nos projets Python.

Créez le répertoire c:\python


Prise en main Python
Juste un petit aparté pour ceux qui ne connaissent pas encore Python. Le but de ce tutoriel n'est pas de faire l'apprentissage de Python. Ces informations sont données à titre indicatif.

Si vous n'avez pas encore l'habitude de Python sous Windows, vous pouvez vous référer à l'article "Prendre en main Python pour Windows"  (developpez.com).

Vous pouvez également apprendre à programmer Python en ligne (openclassrooms.com, fr) Il s'agit d'un ouvrage en ligne et d'un livre réalisé par Vincent Le Goff (aussi appelé Prolixe).

Installer Flask
Le tutoriel de la documentation Flask suggère d'utiliser une environnement virtuel Python pour faire cette installation.
Ces environnement virtuel permettent d'avoir à disposition plusieurs environnements/versions logiciel de Python mais également des bibliothèques installées.

C'est facile a mettre en oeuvre, ainsi, si vous avez décidé de suivre le tutoriel de Flask le mieux est de commencer maintenant en lisant la page Flask - Installation sur le site officiel de Flask.

Nous allons par contre opter pour une solution plus radicale... installer Flask sans activer d'environnement virtuel. Notre but est d'aller d'un point à l'autre le plus rapidement possible pour montrer comment l'ensemble peut se mettre en place (jusqu'a l'hébergement sur PythonAnywhere), à vous ensuite d'investir ou non plus de temps dans Flask et Python

Ouvrez un ligne de commande (de préférence en mode super utilisateur) et rendez-vous dans dans le répertoire Python27

cd c:\python27

Saisissez ensuite la commande

pip install flask

Laissez bosser la machine...




en fin d'installation, vous devriez voir le message similaire à:

Successfully installed Jinja2-2.7.3 Werkzeug-0.10.4 flask-0.10.1 itsdangerous-0.24 markupsafe-0.23



Tester l'installation Flask

Tester Flask est vraiment simple, nous allons utiliser le micro programme de démonstration proposé sur le site de Flask

Ouvrons une ligne de commande et plaçons nous dans le répertoire des projets python.
Nous allons y créer le sous répertoire fdemo

cd c:\python
mkdir fdemo
cd fdemo

Nous allons utiliser un simple éditeur de texte (notepad) pour créer le fichier fdemo.py
Saisissez la commande suivante:

notepad fdemo.py

et y copier le code suivant:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from flask import Flask
app = Flask(__name__)

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

if __name__ == "__main__":
    app.run()

Le première ligne n'a d'intérêt que pour les systèmes de type Linux/Unix. Nous allons la préserver pour rester le plus générique possible (qui sait, vous pourriez avoir envie de faire un essais sur un Raspberry-Pi 2 ;-) )

Par contre, la deuxième ligne est nettement plus importante. Elle indique le type d'encodage utilisé dans le fichier.

Il faut donc veiller à ce que notepad sauve notre fichier en UTF-8 (par défaut c'est de l'ANSI).



Pour tester notre démo Flask sur notre notre ordinateur, il suffit simplement de lancer le programme fdemo.py avec python

Je vous propose de saisir les commandes suivantes sur une ligne de commande:

cd c:\python\fdemo
python fdemo.py


Voici ce qui produit le résultat ci-dessous:

Démarrage de web serveur de développement

Le message "Running on http://127.0.0.1:5000/" indique qu'un petit serveur WEB de développement est démarré sur notre machine et que ce dernier écoute sur le port 5000.
L'adresse IP 127.0.0.1 est une adresse IP spéciale correspondant à votre propre machine (elle est dit "adresse loopback").

Nous allons ouvrir notre navigateur internet favoris et y encoder l'adresse suggérée par Flask

http://127.0.0.1:5000/

Ce qui démarrera notre petit programme de démo et affichera

Résultat sous Firefox

Résultat sous Internet Explorer


Nous pouvons clairement constaté le message "Hello World!" retourné par Flask.

Nous pouvons par ailleurs constater que Flask à capturé toutes nos requêtes
Capture des requêtes http.
Nous pouvons finalement interrompre le programme/serveur web en pressant les touches CTRL  et C (souvent indiqué CTRL+C) dans la fenêtre ce commande.
Nous retrouvons alors l'invite pour saisir une nouvelle commande.

Conclusion
Nous avons installé Python, Flask et testé Flask sur un environnement local Windows (disons de développement).

Programmer en python est aussi simple que d'ouvrir un fichier texte... vous pouvez donc opter pour l'éditeur de votre choix... pour autant qu'il encode votre fichier en UTF-8.
PSPAD est une alternative intéressant sous Windows bien que Python 2.7 soit livré avec IDLE (un petit environnement de développement simplifié écrit en Python). Sous Linux, vous trouverez Geany très intéressant et très rapide. Ce ne sont que quelques pistes/point de départ... le reste vous appartient.

La suite du tutoriel s'attardera sur un projet de démonstration un peu plus complet qu'un simple "Hello World!"

Tous les articles de ce tutoriel
Ce tutoriel est divisé en plusieurs parties... vous pouvez y accéder facilement grâce au liens suivants: