cours:intro_web_web_service_si3_2016_2017
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
cours:intro_web_web_service_si3_2016_2017 [2017/04/12 11:47] – [Frequently Asked Quastions: FAQ] tigli | cours:intro_web_web_service_si3_2016_2017 [2019/02/06 06:13] (Version actuelle) – [Cours d'Introduction aux Web et Services Web] tigli | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
Cet ensemble de cours se déroule dans le prolongement de cours sur les protocoles UDP et TCP over IP. | Cet ensemble de cours se déroule dans le prolongement de cours sur les protocoles UDP et TCP over IP. | ||
Il s' | Il s' | ||
- | [[http:// | + | [[http:// |
||| | ||| | ||
Ligne 19: | Ligne 19: | ||
---- | ---- | ||
- | === Cours d' | + | ==== Cours d' |
{{: | {{: | ||
Ligne 25: | Ligne 25: | ||
- | === Travaux pratiques : Mon premier serveur web dans mon serveur TCP/IP Socket === | + | ==== Travaux pratiques : Mon premier serveur web dans mon serveur TCP/IP Socket |
||| | ||| | ||
{{: | {{: | ||
Ligne 59: | Ligne 59: | ||
---- | ---- | ||
- | === Cours sur le Web Dynamique et le protocole HTTP === | + | ==== Cours sur le Web Dynamique et le protocole HTTP ==== |
||| | ||| | ||
{{: | {{: | ||
- | === Travaux pratiques : Serveur de pages Web Dynamiques === | + | ==== Travaux pratiques : Serveur de pages Web Dynamiques |
||| | ||| | ||
{{: | {{: | ||
Ligne 69: | Ligne 69: | ||
---- | ---- | ||
- | === Cours d' | + | ==== Cours d' |
||| | ||| | ||
{{: | {{: | ||
- | === Travaux pratiques : Introduction aux Web Services === | + | ==== Travaux pratiques : Introduction aux Web Services |
||| | ||| | ||
{{: | {{: | ||
Ligne 111: | Ligne 111: | ||
===== Frequently Asked Quastions: FAQ ===== | ===== Frequently Asked Quastions: FAQ ===== | ||
- | == Comment écrire un chemin de fichier indépendant de l' | + | [[cours: |
- | on dispose également de la fonction os.path.join( chemin1, chemin2) qui permet de concaténer | + | |
- | < | ||
- | chemin=os.getenv(' | ||
- | chemin=os.path.join(chemin,' | ||
- | print (chemin) | ||
- | / | ||
- | </ | ||
- | == Comment utiliser les pipes en python ?== | ||
- | * Le module os (import os) en python vous permet d' | ||
- | < | ||
- | os.fork() | ||
- | pipein, pipeout = os.pipe() | ||
- | ... = os.read(pipein, | ||
- | os.write(pipeout, | ||
- | os.close(pipein) | ||
- | os.close(pipeout) | ||
- | </ | ||
- | |||
- | * Python permet aussi d' | ||
- | < | ||
- | si on veut pouvoir envoyer des données sur le stdin du process, il faut faire : myPopen = subprocess.Popen([' | ||
- | |||
- | si on veut pouvoir récupérer des données de la sortie standard et de la sortie d' | ||
- | < | ||
- | myPopen = subprocess.Popen([' | ||
- | </ | ||
- | |||
- | myPopen.stdin, | ||
- | | ||
- | Exemple : | ||
- | | ||
- | < | ||
- | import subprocess | ||
- | s = subprocess.Popen([' | ||
- | ... | ||
- | s.stdin.write(cmde+' | ||
- | s.stdin.flush() | ||
- | res = s.stdout.readline() | ||
- | print " | ||
- | | ||
- | s.stdin.close() | ||
- | s.stdout.close() | ||
- | | ||
- | </ | ||
- | |||
- | == Commment puis-je détecter le type d' | ||
- | L' | ||
- | |||
- | == Commment savoir que le message HTTP à lire est fini ? == | ||
- | Le test de fin se basera sur la taille du message qui se trouve dans un champ d' | ||
- | |||
- | == Comment accéder aux variables d’environnement en Python ? == | ||
- | Tout cgi-bin doit pouvoir s’appuyer sur les paramètres qui lui sont destinés et qui ont été collectés dans la variable d’environnement QUERY_STRING. | ||
- | En conséquence le serveur doit être capable de préparer des variables d’environnement avant de lancer le cgi-bin. | ||
- | Pour obtenir une variable d' | ||
- | < | ||
- | import os | ||
- | ... | ||
- | if os.environ.has_key(' | ||
- | print os.environ[' | ||
- | </ | ||
===== Compléments de Cours et de TD ===== | ===== Compléments de Cours et de TD ===== | ||
- | {{ : | + | [[cours:SI3:FAQ:complement_cours_Web_WS|Page sur des compléments |
- | ||| | + | ===== Archives |
- | == Quelques Cours et Tutoriels sur Python == | + | |
- | + | ||
- | + | ||
- | ||| | + | |
- | + | ||
- | * [[https:// | + | |
- | + | ||
- | + | ||
- | + | ||
- | == Exemple Gestion de Chaines de caractères == | + | |
- | + | ||
- | * [[https:// | + | |
- | + | ||
- | + | ||
- | == Exemple de code Python d'un client / Serveur | + | |
- | + | ||
- | * [[https:// | + | |
- | + | ||
- | * Code Python d'un client et d'un serveur TCP/IP {{: | + | |
- | * Attention : les méthodes send, recv sur les sockets manipulent des bytes. Vous ne pouvez donc envoyer et recevoir directement des chaines de caractères. La méthode ** encode ** sur une chaine pour récupérer une liste de bytes et ** decode ** sur une liste de bytes pour récupérer la chaine de caractères correspondantes | + | |
- | * Attention ce code est prévu pour Python <= 2.x. En python 3.x il faudar faire quelques modifications comme print à réécrire comme une fonction en print(). | + | |
- | + | ||
- | == Autre == | + | |
- | + | ||
- | *{{: | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | === ARCHIVES | + | |
[[cours: | [[cours: | ||
cours/intro_web_web_service_si3_2016_2017.1491997631.txt.gz · Dernière modification : 2017/04/12 11:47 de tigli