Python et applications web

Magazine
Marque
GNU/Linux Magazine
Numéro
139
Mois de parution
juin 2011


Résumé
Python a toujours présenté des solutions originales aux développeurs web. L'évolution des pratiques du développement web s'oriente vers la résolution de nouvelles problématiques liées à l'industrialisation, à la fiabilisation et à la réutilisation. Les solutions plébiscitées se soldent par l'avènement de la programmation par composants, qui s'ancre résolument dans le paysage du développement web. Cet article fait un état des lieux de la vision web par Python et répond à la question suivante : « Je dois réaliser une application web en respectant des délais restreints, des coûts fixés et un niveau de qualité important. Quelles solutions offre Python, que valent-elles face à la concurrence et quels sont les critères qui me permettront de faire un choix éclairé ? »

1. Le serveur web vu par Python

1.1 Couches basses

Écrire un serveur web avec Python est d'une simplicité proprement hallucinante. Voici pour un serveur TCP :

import SocketServer

tcp_server = SocketServer.TCPServer(('localhost', 8001), TcpHandler)

tcp_server.serve_forever()

Et maintenant pour un serveur UDP :

import SocketServer

upd_server = SocketServer.UDPServer(('localhost', 8002), UdpHandler)

udp_server.serve_forever()

Les deux extraits de code sont quasiment identiques. La question est en réalité de savoir à quoi vont servir ses serveurs. Le handler présent en tant que second paramètre est instancié pour chaque requête, et c'est à lui de dire quoi faire.

Il peut se contenter de répondre « Hello World », au hasard. Pour TcpHandler, cela donne :

class TcpHandler:(SocketServer.BaseRequestHandler):

 def handle(self):

  self.request.send('Hello World')

Pour UdpHandler, il y a des petites différences :

class UdpHandler:(SocketServer.BaseRequestHandler):

 def handle(self):

 

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite