Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Scripting Python sous Linux
  3. Aller plus loin avec Python
Extrait - Scripting Python sous Linux Développez vos outils système (2e édition)
Extraits du livre
Scripting Python sous Linux Développez vos outils système (2e édition)
2 avis
Revenir à la page d'achat du livre

Aller plus loin avec Python

Introduction

Tout au long de cet ouvrage, nous avons tenté de vous faire découvrir certains côtés de Python, avec avant tout une volonté pragmatique : il fallait que cela soit simple et rapide à mettre en œuvre pour répondre à des besoins précis et courants.

Mais dès que l’on acquiert un peu plus d’expérience avec Python, et cela vient très vite, il peut être aussi intéressant de s’investir un peu plus sur certains sujets. 

Ce chapitre a pour but de présenter quelques librairies importantes dans le monde Python qui pourraient valoir le coup de vous investir un peu.

Le but est de vous montrer l’étendue de ce que Python peut faire.

Bottle & Flask

1. Bottle

Comme nous l’avons déjà dit précédemment, Bottle est un framework (infrastructure logicielle) écrit en Python dont le plus gros avantage est de n’avoir aucune dépendance, à part la librairie standard.

Il suffit donc d’utiliser pip install bottle, puis de copier l’exemple suivant :

#fichier : bottle/b1.py 
 
from bottle import route, run 
 
@route('/hello') 
def hello(): 
   return "Hello World!" 
 
run(host='localhost', port=8080, debug=True) 

Ensuite, il nous faut lancer ce script, et prendre un navigateur pour aller sur http://localhost:8080/hello, c’est tout.

Pour découvrir le monde des frameworks web avec le langage Python, c’est l’idéal.

Bottle possède :

  • un routeur : ce qui permet d’aiguiller les requêtes vers les bonnes fonctions,

  • un moteur de template : c’est Jinja,

  • un serveur intégré : pour la mise au point,

  • des utilitaires : pour gérer les différents cas de figure, comme le chargement de fichiers, les formulaires, etc.

Vous avez une micro application à coder, ce genre d’outil est parfait pour commencer. 

2. Flask

Flask est le frère jumeau de Bottle. Pourquoi prendre l’un ou l’autre ? Aucune idée.

D’après certains...

Outils

1. Watchdog

Il s’agit du chien de garde de votre système de fichiers. Ce module permet de surveiller ce qu’il se passe sur des répertoires et des fichiers, et de réagir.

Même le premier programme d’exemple est impressionnant :

#fichier : watchdog/w1.py 
 
import sys 
import time 
import logging 
from watchdog.observers import Observer 
from watchdog.events import LoggingEventHandler 
 
if __name__ == "__main__": 
   logging.basicConfig(level=logging.INFO, 
                       format='%(asctime)s - %(message)s', 
                       datefmt='%Y-%m-%d %H:%M:%S') 
   path = sys.argv[1] if len(sys.argv) > 1 else '.' 
   event_handler = LoggingEventHandler() 
   observer = Observer() 
   observer.schedule(event_handler, path, recursive=True) 
   observer.start() 
   try: 
       while True: 
           time.sleep(1) 
   except KeyboardInterrupt: 
       observer.stop() 
   observer.join() 

Créez un répertoire, copiez ce script et lancez-le.

Puis, avec une autre session...

Interfaces utilisateurs

1. Interface graphique : Tkinter

Depuis ses débuts, Python a intégré Tk/Tcl comme librairie graphique. Cette interface graphique nommée Tk (à prononcer comme ticket) a été développée à l’origine pour le langage Tcl, mais a toujours été conçue pour être portable.

Comme la librairie Tk s’interfaçait très bien avec le langage C, celle-ci a été portée pour beaucoup d’autres langages, dont Python. Le but initial était de fournir un outil indépendant de la plateforme pour la gestion de fenêtres graphiques.

Tk/Tcl est maintenant célèbre pour son aspect vieillot, qui est en fait un héritage de l’interface graphique X11 du siècle dernier.

Mais cette librairie est toujours présente et il suffit de taper ce script et de la lancer pour voir apparaître une petite fenêtre comme celle-ci :

images/17EI01.png

HELLO TK

Voici le script :

#fichier : tk/hello.py 
 
import tkinter as tk 
 
class Application(tk.Frame): 
   def __init__(self, master=None): 
       super().__init__(master) 
       self.master = master 
       self.pack() 
       self.create_widgets() 
 
   def create_widgets(self): ...

Résumé

Cette rapide présentation d’outils et de modules Python est issue d’une expérience personnelle et professionnelle.

À un moment donné ou à un autre, ces modules ont servi dans différents cas de figure, bien souvent dans la résolution de petits problèmes jugés non résolubles par l’utilisateur moyen ou de manière plus pragmatique pour simplifier la vie.