Outils pour utilisateurs

Outils du site


cours:intro_web_web_service_si3_2016_2017

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
cours:intro_web_web_service_si3_2016_2017 [2017/04/12 13:47]
tigli [Frequently Asked Quastions: FAQ]
cours:intro_web_web_service_si3_2016_2017 [2017/04/12 14:12]
tigli [Frequently Asked Quastions: FAQ]
Ligne 19: Ligne 19:
 ---- ----
  
-=== Cours d'​introduction : du Web au Web services ===+==== Cours d'​introduction : du Web au Web services ​====
  
 {{:​cours:​des_sockets_aux_web_services_intro_si3_cours_1.pdf| Transparents surpport du cours 1 : du Web au Web services}} {{:​cours:​des_sockets_aux_web_services_intro_si3_cours_1.pdf| Transparents surpport du cours 1 : du Web au Web services}}
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 ​====
 ||| |||
 {{:​cours:​td1_web_statique_et_http_si3_2017.pdf| Support de Travaux Pratiques : Web Statique}} {{:​cours:​td1_web_statique_et_http_si3_2017.pdf| Support de Travaux Pratiques : Web Statique}}
Ligne 59: Ligne 59:
 ---- ----
  
-=== Cours sur le Web Dynamique et le protocole HTTP ===+==== Cours sur le Web Dynamique et le protocole HTTP ====
 ||| |||
 {{:​cours:​protocole_http_si3_et_web_dynamique_cours_2.pdf|Cours protocole HTTP et Pages Web Dynamiques}} {{:​cours:​protocole_http_si3_et_web_dynamique_cours_2.pdf|Cours protocole HTTP et Pages Web Dynamiques}}
  
-=== Travaux pratiques : Serveur de pages Web Dynamiques ===+==== Travaux pratiques : Serveur de pages Web Dynamiques ​====
 ||| |||
 {{:​cours:​td2_web_dynamique_et_http_si3_2017.pdf|Support de Travaux Pratiques : Web Dynamique}} {{:​cours:​td2_web_dynamique_et_http_si3_2017.pdf|Support de Travaux Pratiques : Web Dynamique}}
Ligne 69: Ligne 69:
 ---- ----
  
-=== Cours d'​introduction aux Services Web ===+==== Cours d'​introduction aux Services Web ====
 ||| |||
 {{:​cours:​cours_intro_services_web_rest_et_soap_si3_2016-2017.pdf|Cours sur Les principes des Services Web et des WS REST et SOAP}} {{:​cours:​cours_intro_services_web_rest_et_soap_si3_2016-2017.pdf|Cours sur Les principes des Services Web et des WS REST et SOAP}}
  
-=== Travaux pratiques : Introduction aux Web Services ===+==== Travaux pratiques : Introduction aux Web Services ​====
 ||| |||
 {{:​cours:​td3a_formulaire_web_pour_tester_un_post_dans_un_browser_web2017.pdf| TD Utilisation d'un formulaire HTML pour générer des requêtes GET et POST}} {{:​cours:​td3a_formulaire_web_pour_tester_un_post_dans_un_browser_web2017.pdf| TD Utilisation d'un formulaire HTML pour générer des requêtes GET et POST}}
Ligne 111: Ligne 111:
  
 ===== Frequently Asked Quastions: FAQ ===== ===== Frequently Asked Quastions: FAQ =====
-== Comment écrire un chemin de fichier indépendant de l'​OS ​ ? == +[[cours:​SI3:​FAQ:​FAQ_Web_WS| Page des FAQ "du Web aux Web Services ​en Python"​]]
-on dispose également de la fonction os.path.join( chemin1, chemin2) qui permet de concaténer ​des chemins simplement ​en respectant les convention de l'OS de support : +
  
-<​code>​ 
-chemin=os.getenv('​HOME'​) 
-chemin=os.path.join(chemin,'​Bureau'​) 
-print (chemin) 
-/​home/​user/​Bureau 
-</​code>​ 
  
-== Comment utiliser les pipes en python ?== 
-  * Le module os (import os) en python vous permet d'​avoir accès à une API proche de POSIX dans laquelle vous trouvez :  
-<​code> ​ 
-os.fork() 
-pipein, pipeout = os.pipe() 
-... = os.read(pipein,​ ...) 
-os.write(pipeout,​ ...) 
-os.close(pipein) 
-os.close(pipeout) 
-</​code>​ 
- 
-  * Python permet aussi d'​accéder à une struture de pipes à la création d'un processus. Voici quelques explications :  
-<​code>​ myPopen = subprocess.Popen(['​cat',​ '​-n'​]) : fait l'​appel système non bloquant. 
-si on veut pouvoir envoyer des données sur le stdin du process, il faut faire : myPopen = subprocess.Popen(['​cat',​ '​-n'​],​ stdin = subprocess.PIPE). 
- 
-si on veut pouvoir récupérer des données de la sortie standard et de la sortie d'​erreur du process, il faut faire :  
-<​code>​ 
-myPopen = subprocess.Popen(['​cat',​ '​-n'​],​ stdout = subprocess.PIPE,​ stderr = subprocess.PIPE). 
-</​code>​ 
- 
-myPopen.stdin,​ myPopen.stdout,​ myPopen.stderr : les entrées et sorties standard, quand elles ont été mises a subprocess.PIPE dans le constructeur. myPopen.stdout est de la classe file. 
-    ​ 
-Exemple : 
-    ​ 
-<​code> ​ 
-    import subprocess 
-     s = subprocess.Popen(['​bc','​-q'​],​stdin = subprocess.PIPE,​ stdout = subprocess.PIPE,​ stderr = subprocess.STDOUT) 
-    ... 
-    s.stdin.write(cmde+'​\n'​) 
-    s.stdin.flush() 
-    res = s.stdout.readline() 
-    print "​Resultat:",​res 
-    ​ 
-s.stdin.close() 
-s.stdout.close() 
-    ​ 
-</​code>​ 
- 
-== Commment puis-je détecter le type d'​invocation GET ou POST de mon cgi-bin ? == 
-L'​information se trouve dans le champ d'​entête du message HTTP. Il s'agit de RequestMethod. 
- 
-== 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'​entête du message HTTP. Il s'agit de Content-Lenght. ​ 
- 
-== 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'​environnement avec Python vous pouvez utiliser le module os et la variable environ avec par exemple :  
-<​code>​ 
-import os  
-... 
-if os.environ.has_key('​nom_de_la_cle'​):​ 
-print os.environ['​nom_de_la_cle'​] 
-</​code>​ 
 ===== Compléments de Cours et de TD ===== ===== Compléments de Cours et de TD =====
-{{ :​cours:​book_python.jpg?​direct&​100|}} +[[cours:SI3:FAQ:complement_cours_Web_WS|Page sur des compléments ​de cours "Web aux Web Services"​]] 
-||| +===== Archives ​=====
-== Quelques Cours et Tutoriels sur Python == +
- +
- +
-||| +
- +
-  * [[https://​books.google.fr/​books?​id=aJQILlLxRmAC&​printsec=frontcover&​hl=fr&​source=gbs_ge_summary_r&​cad=0#​v=onepage&​q&​f=false|Python ProgrammingAn Introduction to Computer Science Par John M. Zelle]] +
- +
- +
- +
-== Exemple Gestion de Chaines de caractères == +
- +
-  * [[https://​openclassrooms.com/​courses/​apprenez-a-programmer-en-python/​notre-premier-objet-les-chaines-de-caracteres|Cours chaines ​de caractères en python]] +
- +
- +
-== Exemple de code Python d'un client / Serveur ​== +
- +
-  * [[https://​openclassrooms.com/​courses/​apprenez-a-programmer-en-python/​le-reseau|Cours socket sous python]] +
- +
-  * Code Python d'un client et d'un serveur TCP/IP {{:​cours:​code_client_server_socket_python.zip|code_client_server_socket_python.zip}} +
-  * 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 ==  +
- +
-  *{{:​cours:​cours_annexe_web_authentification_-_suivi_de_session_-_multi_part.pdf| Web et Suivi de Session, Authentification,​ Contrôle d'​Accès,​ ...}} +
- +
- +
- +
- +
-=== ARCHIVES ​===+
  
 [[cours:​intro_web_web_service_si3_2015_2016| Page du Cours "Du Web aux Web Services"​ 2016]] [[cours:​intro_web_web_service_si3_2015_2016| Page du Cours "Du Web aux Web Services"​ 2016]]
  
  
cours/intro_web_web_service_si3_2016_2017.txt · Dernière modification: 2019/02/06 07:13 par tigli