# Programmation Python/Programmer en deux minutes/un serveur Web
## Partie 1 - Introduction

* Avant-propos à l'attention des non-programmeurs
* Introduction
* Installation
* Éditeurs
* Programmer en deux minutes
** une messagerie instantanée
** un programme interfacé avec Wikipédia
** un serveur Web

## Partie 2 - Le langage

* Afficher un texte
* Structure d'un programme
* Variables
* Opérateurs
* Structures de contrôle
* Instructions répétitives
* Types
** Numériques
** Booléens
** Chaines de caractères
** Listes
** Tuples
** Dictionnaires
** Dates
** Ensembles
* Fonctions
* Modules
* Exercices
** Palindrome
* Regex
* Programmation orientée objet pour les non-programmeurs
* Classes
* Classes et Interfaces graphiques
* Fichiers
* Exceptions
* Bases de données
** Gestion
* L'interface CGI
* Applications web
* Réseau
* Threads

## Partie 3 - Les bibliothèques

* Bibliothèques pour Python
* L'interface graphique
* Utilisation de fenêtres et de graphismes
** Tkinter
** Widgets
** Turtle
* Les threads
* XML
* JSON
* Tests
* Analyse statique de programmes
* Fabric
* Le Web
** Django
** Karrigell
** Aiohttp

## Partie 1 - Introduction

* Avant-propos à l'attention des non-programmeurs
* Introduction
* Installation
* Éditeurs
* Programmer en deux minutes
** une messagerie instantanée
** un programme interfacé avec Wikipédia
** un serveur Web

## Partie 2 - Le langage

* Afficher un texte
* Structure d'un programme
* Variables
* Opérateurs
* Structures de contrôle
* Instructions répétitives
* Types
** Numériques
** Booléens
** Chaines de caractères
** Listes
** Tuples
** Dictionnaires
** Dates
** Ensembles
* Fonctions
* Modules
* Exercices
** Palindrome
* Regex
* Programmation orientée objet pour les non-programmeurs
* Classes
* Classes et Interfaces graphiques
* Fichiers
* Exceptions
* Bases de données
** Gestion
* L'interface CGI
* Applications web
* Réseau
* Threads

## Partie 3 - Les bibliothèques

* Bibliothèques pour Python
* L'interface graphique
* Utilisation de fenêtres et de graphismes
** Tkinter
** Widgets
** Turtle
* Les threads
* XML
* JSON
* Tests
* Analyse statique de programmes
* Fabric
* Le Web
** Django
** Karrigell
** Aiohttp
[ Modifier le sommaire ]
Nous allons écrire un script en Python et l'exécuter dans une console. Le programme va utiliser deux ensemble d'instructions, ces ensembles étant définis dans la bibliothèque de base.

## Serveur HTTP

1. Ouvrir un éditeur de texte, écrire le script...
* serveur_http.py
* #!/usr/bin/python
* # -*- coding: latin-1 -*-
* import SimpleHTTPServer # importe un ensemble d'instructions pour servir les requêtes http.
* import SocketServer # importe un ensemble d'instructions pour connecter le programme.
* # Ces deux ensembles sont disponibles à l'installation de Python
* ## Python 3 :
* # import http.server
* # import socketserver
* # Serveur http de base delivrant le contenu du repertoire courant via le port indique.
* PORT = 5432
* Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
* httpd = SocketServer.TCPServer(("", PORT), Handler)
* print "serving at port", PORT
* ## Python 3 :
* # Handler = http.server.SimpleHTTPRequestHandler
* # httpd = socketserver.TCPServer(("",PORT), Handler)
* # print("à l'écoute sur le port :", PORT)
* httpd.serve_forever
...enregistrez ce script (par exemple serveur_http.py) dans un répertoire que vous voulez partager (par exemple /PUBLIC_web) et exécutez-le dans une console.
Félicitation, votre programme répond aux requêtes http://localhost:5432 et votre répertoire public peut être téléchargé.
* ↑ « http://localhost:5432 » est une requête de protocole HTTP à votre machine locale via le port 5432
* ↑ Nommé « /PUBLIC_web » dans l'exemple

## Index.html

2. Ouvrez un éditeur de texte et créez l'index de votre site statique :
* index.html
* <!DOCTYPE html
* PUBLIC "-//W3C//DTD HTML 4.01//FR"
* "http://www.w3.org/TR/html4/strict.dtd">
* <html lang="fr-FR">
* <head>
* Bonjour, bienvenue sur le serveur de mon ordinateur perso.
* C'est un <a href="serveur_http.py">programme en Python</a> qui vous sert.
* </head>
* <body>
* <title>Salut le Web</title>
* <h2>Sommaire</h2>
* <p><a href="page1.html">Page 1</a> - <a href="page2.html">Page 2</a>
* <p>Fichier partagé : <a href="rapportXX.odt">rapportXX</a> et lien web : <a href="http://fr.wikipedia.org">wikipedia</a>.
* </body>
* </html>
...enregistrez ce fichier sous le nom index.html dans le répertoire que vous partagez (Nommé « /PUBLIC_web » dans cet exemple).
Félicitation, votre programme répond aux requêtes http://localhost:5432 en servant l'index de votre site web !
       Pour aller plus loin : Catégorie:Programmation.
          ... en deux minutes avec Python :
         * une messagerie instantanée,
         * un programme en interface avec Wikipédia,
         * un serveur Web pour partager des fichiers et mettre en ligne un site statique en HTML.
       Voir aussi le livre : Programmer en deux minutes