24
Session 2/3 Olivier Rovellotti Python

Ns python web 1

Embed Size (px)

Citation preview

Page 1: Ns python web 1

Session 2/3

Olivier Rovellotti

Python

Page 2: Ns python web 1

Le web

Page 3: Ns python web 1
Page 4: Ns python web 1

IP

Page 5: Ns python web 1

DNS

Web Browser DNS

Google.com

216.58.206.238

Page 6: Ns python web 1

Exercices

• Tracert

• Ipconfig

• Ping

• net send [ip du pc ciblé] message

Page 7: Ns python web 1

UTL/URI

Page 8: Ns python web 1

HTTP

Web Browser HTTP

Requette

HTML + CSS

Page 9: Ns python web 1

HTTP methode GETLa 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.

HEADLa 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).

POSTLa 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.

PUTLa méthode PUT remplace toutes les représentations actuelles de la ressource visée par le contenu de la requête.

DELETELa méthode DELETE supprime la ressource indiquée.

CONNECTLa méthode CONNECT établit un tunnel vers le serveur identifié par la ressource cible.

OPTIONSLa méthode OPTIONS est utilisée pour décrire les options de communications avec la ressource visée.

TRACELa méthode TRACE réalise un message de test aller/retour en suivant le chemin de la ressource visée.

PATCHLa méthode PATCH est utilisée pour appliquer des modifications partielles à une ressource.

Page 10: Ns python web 1

•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

Page 11: Ns python web 1

CGI

Web Browser

HTTP CGIServeur

Web

Page 12: Ns python web 1

PRATIQUE

Page 13: Ns python web 1

Code du serveur

import http.server PORT = 8888server_address = ("", PORT)

server = http.server.HTTPServerhandler = http.server.CGIHTTPRequestHandlerhandler.cgi_directories = ["/"]print("Serveur actif sur le port :", PORT)

httpd = server(server_address, handler)httpd.serve_forever()

URL /PORT

CGI

Page 14: Ns python web 1

#!/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

Page 15: Ns python web 1

ASCII

Page 16: Ns python web 1

UNICODEAu 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".

Page 17: Ns python web 1

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)

Page 18: Ns python web 1

#!/usr/bin/python3 # -*- coding: utf-8 -*

import cgi

form = cgi.FieldStorage() print("Content-type: text/html; charset=utf-8\n") 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

Page 19: Ns python web 1

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.1Host: 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

Page 20: Ns python web 1

The GET MethodNote 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

Page 21: Ns python web 1

Exercises

1.1 Ajouter un contact

1.2 Ajouter une relation entre deux contacts

1.3 Afficher un graphe de contact (https://d3js.org/)

Page 22: Ns python web 1

EXERCICES

Page 23: Ns python web 1

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

Page 24: Ns python web 1

Twitter: @orovellotti www.natural-solutions.eu

Merci

[email protected]