SlideShare uma empresa Scribd logo
1 de 24
Session 2/3
Olivier Rovellotti
Python
Le web
IP
DNS
Web
Browser DNS
Google.com
216.58.206.238
Exercices
• Tracert
• Ipconfig
• Ping
• net send [ip du pc ciblé] message
UTL/URI
HTTP
Web
Browser HTTP
Requette
HTML + CSS
HTTP methode GET
La méthode GET demande une représentation de la ressource spécifiée. Les requêtes
GET doivent uniquement être utilisées afin de récupérer des données.
HEAD
La méthode HEAD demande une réponse identique à une requête GET pour laquelle on
aura omis le corps de la réponse (on a uniquement l'en-tête).
POST
La méthode POST est utilisée pour envoyer une entité vers la ressource indiquée. Cela
entraîne généralement un changement d'état ou des effets de bord sur le serveur.
PUT
La méthode PUT remplace toutes les représentations actuelles de la ressource visée par
le contenu de la requête.
DELETE
La méthode DELETE supprime la ressource indiquée.
CONNECT
La méthode CONNECT établit un tunnel vers le serveur identifié par la ressource cible.
OPTIONS
La méthode OPTIONS est utilisée pour décrire les options de communications avec la
ressource visée.
TRACE
La méthode TRACE réalise un message de test aller/retour en suivant le chemin de la
ressource visée.
PATCH
La méthode PATCH est utilisée pour appliquer des modifications partielles à une
ressource.
•200 : succès de la requête
•301 et 302 : redirection, respectivement permanente et temporaire
•401 : utilisateur non authentifié
•403 : accès refusé
•404 : page non trouvée
•500 et 503 : erreur serveur.
Liste des codes HTTP
CGI
Web
Browser
HTTP CGI
Serveur
Web
PRATIQUE
Code du serveur
import http.server
PORT = 8888
server_address = ("", PORT)
server = http.server.HTTPServer
handler = http.server.CGIHTTPRequestHandler
handler.cgi_directories = ["/"]
print("Serveur actif sur le port :", PORT)
httpd = server(server_address, handler)
httpd.serve_forever()
URL /PORT
CGI
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# enable debugging
import cgitb
cgitb.enable()
print "Content-Type: text/plain;charset=utf-8"
print
print "Hello World!"
Hello
ASCII
UNICODE
Au lieu d'utiliser seulement les codes 0 à 127, il utilise des
codes de valeur bien plus grandes.
Le code UNICODE permet de représenter tous les
caractères spécifiques aux différentes langues. De
nouveaux codes sont régulièrement attribués pour de
nouveaux caractères: caractères latins (accentués ou
non), grecs, cyrillics, arméniens, hébreux, thaï, hiragana,
katakana... L'alphabet Chinois Kanji comporte à lui seul
6879 caractères.
Un caractères prend 2 octets.
la grande majorité des caractères utilisent
seulement le code ASCII.
UTF-8.
Un texte en UTF-8 est simple: il est partout
en ASCII, et dès qu'on a besoin d'un
caractère appartenant à l'Unicode, on utilise
un caractère spécial signalant "attention, le
caractère suivant est en Unicode".
Exercises
1.1Afficher tous mes contacts sur une page
1.2 Ecrire une fonction qui renvoie une chaine HTML à partir d’une liste python
1.3 Afficher tous les élevés de la classe sur une page mise en forme (CSS et image)
#!/usr/bin/python3
# -*- coding: utf-8 -*
import cgi
form = cgi.FieldStorage()
print("Content-type: text/html; charset=utf-8n")
print(form.getvalue("name"))
html = """<!DOCTYPE html> <head><title>
Mon programme
</title> </head>
<body>
<form action="/index.py" method="post">
<input type="text" name="name" value="Votre nom" />
<input type="submit" name="send" value="Envoyer information au serveur">
</form>
</body>
</html> """
print(html)
FieldStorage
The POST Method
Note that the query string (name/value pairs) is sent in
the HTTP message body of a POST request:
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
Some other notes on POST requests:
•POST requests are never cached
•POST requests do not remain in the browser history
•POST requests cannot be bookmarked
•POST requests have no restrictions on data length
The GET Method
Note that the query string (name/value pairs) is sent in
the URL of a GET request:
/test/demo_form.php?name1=value1&name2=value2
Some other notes on GET requests:
•GET requests can be cached
•GET requests remain in the browser history
•GET requests can be bookmarked
•GET requests should never be used when dealing with
sensitive data
•GET requests have length restrictions
•GET requests should be used only to retrieve data
Exercises
1.1 Ajouter un contact
1.2 Ajouter une relation entre deux contacts
1.3 Afficher un graphe de contact (https://d3js.org/)
EXERCICES
Exercices Web
• Application todo sans persistance
• Ajouter une tache
• Supprimer une tache
• Marquer un tache comme « Done »
• Application todo avec persistance
• Ajouter une tache
• Supprimer une tache
• Marquer un tache comme « Done »
• Sauvegarder les taches dans un fichier
Twitter: @orovellotti
www.natural-solutions.eu
Merci
Olivier_rovellotti@natural-solutions.eu

Mais conteúdo relacionado

Mais procurados

Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JSAntoine Rey
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPjulien pauli
 
Jquery - introduction au langage
Jquery - introduction au langageJquery - introduction au langage
Jquery - introduction au langageStrasWeb
 
[Atelier] Comment traduire un thème (ou une extension) WordPress
[Atelier] Comment traduire un thème (ou une extension) WordPress[Atelier] Comment traduire un thème (ou une extension) WordPress
[Atelier] Comment traduire un thème (ou une extension) WordPressYoav Farhi
 
Présentation jQuery pour débutant
Présentation jQuery pour débutantPrésentation jQuery pour débutant
Présentation jQuery pour débutantStanislas Chollet
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowMathias Kluba
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLDamien Seguy
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introductionJean Michel
 
OpenCode beta : Haml & Sass
OpenCode beta : Haml & SassOpenCode beta : Haml & Sass
OpenCode beta : Haml & SassRémi Prévost
 

Mais procurados (20)

Mpdf 5
Mpdf 5Mpdf 5
Mpdf 5
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JS
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 
Jquery - introduction au langage
Jquery - introduction au langageJquery - introduction au langage
Jquery - introduction au langage
 
Mpdf 8
Mpdf 8Mpdf 8
Mpdf 8
 
[Atelier] Comment traduire un thème (ou une extension) WordPress
[Atelier] Comment traduire un thème (ou une extension) WordPress[Atelier] Comment traduire un thème (ou une extension) WordPress
[Atelier] Comment traduire un thème (ou une extension) WordPress
 
Mpdf 10
Mpdf 10Mpdf 10
Mpdf 10
 
Mpdf 9
Mpdf 9Mpdf 9
Mpdf 9
 
Présentation jQuery pour débutant
Présentation jQuery pour débutantPrésentation jQuery pour débutant
Présentation jQuery pour débutant
 
Mpdf 4
Mpdf 4Mpdf 4
Mpdf 4
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
 
Mpdf 12
Mpdf 12Mpdf 12
Mpdf 12
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
 
Ruby STAR
Ruby STARRuby STAR
Ruby STAR
 
Mpdf 3
Mpdf 3Mpdf 3
Mpdf 3
 
Mpdf 7
Mpdf 7Mpdf 7
Mpdf 7
 
OpenCode beta : Haml & Sass
OpenCode beta : Haml & SassOpenCode beta : Haml & Sass
OpenCode beta : Haml & Sass
 
Audits php
Audits phpAudits php
Audits php
 

Semelhante a Ns python web 1

php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 
Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)Bruno Delb
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Olivier Le Goaër
 
Introduction à ERRest
Introduction à ERRestIntroduction à ERRest
Introduction à ERRestWO Community
 
Presentation
PresentationPresentation
Presentationbois
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdfssuserc46a93
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database ConnectivityKorteby Farouk
 
Messaging temps réel avec Go
Messaging temps réel avec GoMessaging temps réel avec Go
Messaging temps réel avec GoMickaël Rémond
 
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...Clément OUDOT
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 

Semelhante a Ns python web 1 (20)

spring.pdf
spring.pdfspring.pdf
spring.pdf
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Services rest & jersey
Services rest & jerseyServices rest & jersey
Services rest & jersey
 
Serveurs
ServeursServeurs
Serveurs
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !
 
Cours 8 squid.pdf
Cours 8 squid.pdfCours 8 squid.pdf
Cours 8 squid.pdf
 
Introduction à ERRest
Introduction à ERRestIntroduction à ERRest
Introduction à ERRest
 
Presentation
PresentationPresentation
Presentation
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
technologie web
technologie webtechnologie web
technologie web
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
ajax.pdf
ajax.pdfajax.pdf
ajax.pdf
 
Messaging temps réel avec Go
Messaging temps réel avec GoMessaging temps réel avec Go
Messaging temps réel avec Go
 
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 

Mais de Olivier Rovellotti (20)

Hack4 nature Tree from satellite
Hack4 nature Tree from satelliteHack4 nature Tree from satellite
Hack4 nature Tree from satellite
 
Etoile du berger
Etoile du bergerEtoile du berger
Etoile du berger
 
Methode ux
Methode uxMethode ux
Methode ux
 
Opendata arles
Opendata arlesOpendata arles
Opendata arles
 
Ns biodiversity next julien corny rovellotti olivier 2
Ns biodiversity next julien corny rovellotti olivier 2Ns biodiversity next julien corny rovellotti olivier 2
Ns biodiversity next julien corny rovellotti olivier 2
 
The quest for new empowered citizen scientists
The quest for new empowered citizen scientistsThe quest for new empowered citizen scientists
The quest for new empowered citizen scientists
 
A la découverte de l'ux design
A la découverte de l'ux designA la découverte de l'ux design
A la découverte de l'ux design
 
Gamification, Ludification de l’expérience énergie
Gamification, Ludification de l’expérience énergie Gamification, Ludification de l’expérience énergie
Gamification, Ludification de l’expérience énergie
 
Le donut tour metropole
Le donut tour metropoleLe donut tour metropole
Le donut tour metropole
 
Ns ux-emotion
Ns ux-emotionNs ux-emotion
Ns ux-emotion
 
Ns ux-ethique
Ns ux-ethiqueNs ux-ethique
Ns ux-ethique
 
Datasud barcamp
Datasud barcampDatasud barcamp
Datasud barcamp
 
Datasud barcamp 2
Datasud barcamp 2Datasud barcamp 2
Datasud barcamp 2
 
Scapin et bastien
Scapin et bastienScapin et bastien
Scapin et bastien
 
Ns cleo lodel ux
Ns cleo lodel uxNs cleo lodel ux
Ns cleo lodel ux
 
Ns python flask 3
Ns python flask 3Ns python flask 3
Ns python flask 3
 
Ns python flask 2
Ns python flask 2Ns python flask 2
Ns python flask 2
 
Ns python-exercices
Ns python-exercicesNs python-exercices
Ns python-exercices
 
Ns python 2
Ns python 2Ns python 2
Ns python 2
 
Ns algo 3
Ns algo 3Ns algo 3
Ns algo 3
 

Ns python web 1

  • 3.
  • 4. IP
  • 6. Exercices • Tracert • Ipconfig • Ping • net send [ip du pc ciblé] message
  • 9. HTTP methode GET La méthode GET demande une représentation de la ressource spécifiée. Les requêtes GET doivent uniquement être utilisées afin de récupérer des données. HEAD La méthode HEAD demande une réponse identique à une requête GET pour laquelle on aura omis le corps de la réponse (on a uniquement l'en-tête). POST La méthode POST est utilisée pour envoyer une entité vers la ressource indiquée. Cela entraîne généralement un changement d'état ou des effets de bord sur le serveur. PUT La méthode PUT remplace toutes les représentations actuelles de la ressource visée par le contenu de la requête. DELETE La méthode DELETE supprime la ressource indiquée. CONNECT La méthode CONNECT établit un tunnel vers le serveur identifié par la ressource cible. OPTIONS La méthode OPTIONS est utilisée pour décrire les options de communications avec la ressource visée. TRACE La méthode TRACE réalise un message de test aller/retour en suivant le chemin de la ressource visée. PATCH La méthode PATCH est utilisée pour appliquer des modifications partielles à une ressource.
  • 10. •200 : succès de la requête •301 et 302 : redirection, respectivement permanente et temporaire •401 : utilisateur non authentifié •403 : accès refusé •404 : page non trouvée •500 et 503 : erreur serveur. Liste des codes HTTP
  • 13. Code du serveur import http.server PORT = 8888 server_address = ("", PORT) server = http.server.HTTPServer handler = http.server.CGIHTTPRequestHandler handler.cgi_directories = ["/"] print("Serveur actif sur le port :", PORT) httpd = server(server_address, handler) httpd.serve_forever() URL /PORT CGI
  • 14. #!/usr/bin/env python # -*- coding: UTF-8 -*- # enable debugging import cgitb cgitb.enable() print "Content-Type: text/plain;charset=utf-8" print print "Hello World!" Hello
  • 15. ASCII
  • 16. UNICODE Au lieu d'utiliser seulement les codes 0 à 127, il utilise des codes de valeur bien plus grandes. Le code UNICODE permet de représenter tous les caractères spécifiques aux différentes langues. De nouveaux codes sont régulièrement attribués pour de nouveaux caractères: caractères latins (accentués ou non), grecs, cyrillics, arméniens, hébreux, thaï, hiragana, katakana... L'alphabet Chinois Kanji comporte à lui seul 6879 caractères. Un caractères prend 2 octets. la grande majorité des caractères utilisent seulement le code ASCII. UTF-8. Un texte en UTF-8 est simple: il est partout en ASCII, et dès qu'on a besoin d'un caractère appartenant à l'Unicode, on utilise un caractère spécial signalant "attention, le caractère suivant est en Unicode".
  • 17. Exercises 1.1Afficher tous mes contacts sur une page 1.2 Ecrire une fonction qui renvoie une chaine HTML à partir d’une liste python 1.3 Afficher tous les élevés de la classe sur une page mise en forme (CSS et image)
  • 18. #!/usr/bin/python3 # -*- coding: utf-8 -* import cgi form = cgi.FieldStorage() print("Content-type: text/html; charset=utf-8n") print(form.getvalue("name")) html = """<!DOCTYPE html> <head><title> Mon programme </title> </head> <body> <form action="/index.py" method="post"> <input type="text" name="name" value="Votre nom" /> <input type="submit" name="send" value="Envoyer information au serveur"> </form> </body> </html> """ print(html) FieldStorage
  • 19. The POST Method Note that the query string (name/value pairs) is sent in the HTTP message body of a POST request: POST /test/demo_form.php HTTP/1.1 Host: w3schools.com name1=value1&name2=value2 Some other notes on POST requests: •POST requests are never cached •POST requests do not remain in the browser history •POST requests cannot be bookmarked •POST requests have no restrictions on data length
  • 20. The GET Method Note that the query string (name/value pairs) is sent in the URL of a GET request: /test/demo_form.php?name1=value1&name2=value2 Some other notes on GET requests: •GET requests can be cached •GET requests remain in the browser history •GET requests can be bookmarked •GET requests should never be used when dealing with sensitive data •GET requests have length restrictions •GET requests should be used only to retrieve data
  • 21. Exercises 1.1 Ajouter un contact 1.2 Ajouter une relation entre deux contacts 1.3 Afficher un graphe de contact (https://d3js.org/)
  • 23. Exercices Web • Application todo sans persistance • Ajouter une tache • Supprimer une tache • Marquer un tache comme « Done » • Application todo avec persistance • Ajouter une tache • Supprimer une tache • Marquer un tache comme « Done » • Sauvegarder les taches dans un fichier