9 luglio 2008

Moduli Python per il Web(Le Famose Batterie)

Si dice di python che è un linguaggio compreso di batterie, queste batterie (moduli) che stiamo per vedere sono i moduli per i protocolli web di python è si basano quasi tutti sui socket scritti in linguaggio C, quindi non dovrebbero esserci problemi di sorta nella portabilità tra sistemi diversi.

Elenco i moduli con cui si possono realizzare server(è con cui sto facendo a cazzotti in questi giorni)

SocketServer:
Un framework per creare server di rete

SimpleHTTPServer:
Fornisce servizi è implementazioni di base del protocollo http

BaseHTTPServer:
Un'altro server http di base, ma fornisce anche servizi con CGIHTTPServer

CGIHTTPServer:
Fornisce servizi cgi di base tramite implementazione di server http

SimpleXMLRPCServer:
Implementa un server di base per server XML-RPC

DocXMLRPCServer:
Server xml-rpc che serve documenti in html tramite GET

ecco un esempio :

import BaseHTTPServer

def run(server_class = BaseHTTPServer.HTTPServer,
handler_class = BaseHTTPServer.BaseHTTPRequestHandler):

server_address = (" ", 8000)

httpd = server_class(server_address, handler_class)

httpd.serve_forever()

run(BaseHTTPServer.HTTPServer, SimpleHTTPServer.SimpleHTTPRequestHandler)

apriamo un browser è colleghiamoci tramite host--porta(http://localhost:8000/)


Questi sono i moduli per creare dei client:

httplib:
supporta sia il protocollo http che https

ftplib:
protocollo per gestire ftp

poplib:
il supporto di posta per POP3, casella di posta in entrata

smtplib:
come sopra ma gestisce la posta in uscita SMTP

imaplib:
implementa il protocollo IMAP, gestione posta avanzata

telnetlib:
protocollo per telnet

goperlib:
protocollo goper

xmlrpclib:
implementa chiamata a web service su protocollo xml-rpc

un esempio tramite httplib:

import httplib

c = httplib.HTTPConnection("127.0.0.1")

c.request(" GET ", " / ")

r = c.getrespons()

print "versione : ", r.versione
print "stato : ", r.stato
print "reason : ", r.reason
print "headers : "
print "###############"
print "###############"
print r.msg

se vi siete incuriositi anche solo un po, non vi resta che leggere la corposa libreria di riferimento (Library Reference)python.






Nessun commento: