Unitatea-4 Python
Unitatea-4 Python
PROGRAMARE ÎN PYTHON
Course Code: CS721PE
C. RAJEEV
Asistent. Prof.
CSE
MRECW.
UNITATEA-4
UNITATE - IV
(HTTP) Servere
Programare GUI:
Introducere:
Ce este o interfaț ă grafică de utilizator (GUI)?
Interfaț a grafică cu utilizatorul (GUI) nu este altceva decât o aplicaț ie de desktop care te ajută să
interacț ionează cu calculatoarele. Ele sunt folosite pentru a efectua diferite sarcini în desktopuri, laptopuri
Aplicaț iile GUI, cum ar fi editorii de text, sunt folosite pentru a crea, a citi, a actualiza ș i a ș terge diferite tipuri de
fiș iere.
Aplicaț iile GUI precum Sudoku, Ș ah ș i Solitaire sunt jocuri pe care le poț i juca.
Aplicaț iile GUI precum Google Chrome, Firefox ș i Microsoft Edge sunt folosite pentru a naviga prin
internetul
Biblioteci Python pentru a crea interfeț e grafice utilizator:
Python oferă mai multe opț iuni/biblioteci diferite pentru scrierea programelor bazate pe GUI.
Acestea sunt enumerate mai jos:
Tkinter: Este cea mai simplă dintre toate bibliotecile. Este GUI standard al Python.
pachetul Interfaț ă Utilizator). Este cel mai utilizat toolkit pentru programarea GUI în
Python.
2. JPython: Este platforma Python pentru Java care oferă scripturi Python fără întreruperi
accesaț i bibliotecile de classe Java pentru masina locală.
3. wxPython: Este un toolkit GUI open-source, multi-platformă, scris în C++. Este unul dintre
alternative la Tkinter, care este inclus în Python.
Există multe alte interfeț e (Kivy, Python QT) disponibile pentru GUI. Dintre toate
aceasta,Tkinter este preferat de mulț i învăț ăcei ș i dezvoltatori doar din cauza cât de simplu
ș i uș or este.
Ce sunt Tcl, Tk ș i Tkinter?
Tkinter este biblioteca GUI implicită a Python-ului. Este bazată pe toolkit-ul Tk, iniț ial
Datorită popularităț ii Tk, a fost portat într-o varietate de alte limbaje de scripting,
inclusiv Perl (Perl/Tk), Ruby (Ruby/Tk) ș i Python (Tkinter).
tkinter este un modul Python încorporat folosit pentru a crea aplicaț ii GUI simple. Este cel mai
Nu trebuie să-ț i faci griji cu privire la instalarea modulului Tkinter, deoarece acesta vine
cu Python default.
>>>import Tkinter-------------python 2.x
>>>import tkinter-------------python 3.x
Dacă interpretul dumneavoastră Python nu a fost compilat cu suport pentru Tkinter, importul modulului eș uează:
>>>import Tkinter
fi configurat pentru Tk
ImportError: No module named _tkinter
Tkinter ș i programare Python:
Crearea unei aplicaț ii GUI folosind Tkinter este o sarcină uș oară. Tot ce trebuie să faci este să efectuezi
paș ii următori -
1. importând tkinter
Este la fel ca importarea oricărui alt modul în codul python. Reț ineț i că numele lui
modulul în Python 2.x este ‘Tkinter’ ș i în Python 3.x este ‘tkinter’.
import tkinter
2. Creează fereastra principală a aplicaț iei GUI.
Un ciclu de evenimente spune de fapt codului să continue să afiș eze fereastra până când noi
minimalizaț i butoanele.
4. Eticheta este folosită pentru a insera anumite obiecte în fereastră. Aici, adăugăm o etichetă cu
câteva texte.
atributul pack() al widget-ului este folosit pentru a afiș a widget-ul într-o dimensiune de care are nevoie.
5. În cele din urmă, metoda mainloop() pentru a afi ș a fereastra până când o închide ț i manual.
Widget-uri Tk:
Widget-urile sunt ceva asemănător cu elementele din HTML. Vei găsi diferite tipuri de widget-uri pentru
Aceste opț iuni pot fi folosite ca perechi cheie-valoare separate prin virgule.
Comandă--Funcț ia sau metoda care trebuie apelată atunci când butonul este apăsat.
Activebackground--Background color when the button is under the cursor.
Activeforeground---Foreground color when the button is under the cursor.
Bd-----Border width in pixels. Default is 2.
Bg--Culoare normală de fundal.
Ex:
din tkinter import *
din tkinter import messagebox
top = Tk()
[Link]("100x100")
def helloCallBack():
msg = [Link]( "Hello Python", "Hello World")
B = Buton(top, text = "Salut", comandă = helloCallBack)
[Link]ă(x = 100,y = 100)
[Link]()
2. Pânză:
Canvasul este o zonă rectangulară destinată desenării imaginilor sau altor obiecte complexe.
import tkinter
top = [Link]()
[Link]()
[Link]()
3. Widget de scară:
Widgetul scale este folosit pentru a implementa sliderul grafic în aplicaț iile Python, astfel încât
utilizatorul poate glisa prin intervalul de valori afiș ate pe glisor ș i selecta unul dintre
ei.
Putem controla valorile minime ș i maxime împreună cu rezoluț ia scalei.
Sintaxă
w = Scală(top, opț iuni)
O listă de opț iuni posibile este dată mai jos:
from_: Este folosit pentru a reprezenta un capăt al gamei de widget-uri.
către: Reprezintă o valoare cu virgulă flotantă sau întreagă care specifică celălalt capăt al
rangereprezentat de scară.
orient: Poate fi setat pe orizontală sau verticală, în funcț ie de tipul scalei.
bd: Dimensiunea marginii widget-ului. Implicit este de 2 pixeli.
bg: Culoarea de fundal a widgetului.
font: Tipul de font al textului widget-ului.
Eticheta este utilizată pentru a specifica caseta container în care putem plasa text sau imagini. Acest lucru
widgetul este folosit pentru a furniza mesajul utilizatorului despre alte widgeturi folosite în python
aplicaț ie.
Există diverse opț iuni care pot fi specificate pentru a configura textul sau partea de
text afiș at în eticheta.
Sintaxă:
w =Label (master, opț iuni)
• master este parametrul folosit pentru a reprezenta fereastra părinte.
• Există o serie de opț iuni care sunt folosite pentru a schimba formatul widget-ului.
bg: pentru a seta culoarea normală de fundal.
bgto setează culoarea de fundal normală.
comandă: a apela o funcț ie.
font: pentru a seta fontul pe eticheta butonului.
imagine: pentru a seta imaginea pe buton.
lăț ime: pentru a seta lăț imea butonului.
height” to set the height of the button.
Ex:
din tkinter import *
root = Tk()
var = StringVar()
label =Label( root, textvariable=var, relief=RAISED )
Salut!? Ce mai faci?
[Link]()
[Link]()
uș urare
Specifică aspectul unui
bordură decorativă în jurul etichetei.
Defaultul este FLAT.
5. Buton de selectare:
Acest widget este folosit pentru a afiș a un număr de opț iuni unui utilizator sub formă de butoane de comutare.
utilizatorul poate apoi să selecteze una sau mai multe opț iuni făcând clic pe butonul corespunzător fiecărei opț iuni
valoare de la utilizator.
Dacă doriț i să afiș aț i mai multe linii de text care pot fi editate, atunci ar trebui să folosiț i
theTextwidget.
Dacă doreș ti să afiș ezi una sau mai multe linii de text care nu pot fi modificate de utilizator,
atunci ar trebui să foloseș ti widgetulLabel.
de la tkinter import *
top = Tk()
L1 =Label(top, text="Nume utilizator")
E1 = Intrare(top, bd =5)
[Link](lateral = DREAPTA)
[Link]()
7. Cadru:
Este folosit pentru a organiza grupul de widgeturi. Ac ț ionează ca un container.
care pot fi folosite pentru a susț ine celelalte widget-uri. Zonele dreptunghiulare
aplicaț ie.
8. Listbox:
Widgetul Listbox este folosit pentru a afiș a o listă de elemente din care un
utilizatorul poate selecta un număr de articole.
9. Meniu:
Scopul acestui widget este să ne permită să creăm tot felul de meniuri
care poate fi folosit de aplicaț iile noastre. Funcț ionalitatea de bază oferă
moduri de a crea trei tipuri de meniu: pop-up, de nivel superior ș i derulant.
widget cadru
Widget Listbox
aplicaț ia python.
Afiș ează mesajele text utilizatorului care nu pot fi editate.
Textul mesajului con ț ine mai multe linii. Cu toate acestea,
mesajul poate fi afiș at doar într-un singur font.
12. MessageBox:
Este folosit pentru a afi ș a casetele de mesaj în aplica ț iile tale.
root = Tk()
var = StringVar()
[Link]()
[Link]()
Widget de mesaj
de la tkinter import *
din tkinter import messagebox
top = Tk()
[Link]("100x100")
def helloCallBack():
msg = [Link]( “Say Hello", "Hello World")
B = Buton(peste, text = "Spune Salut", comandă = helloCallBack)
[Link]ă(x = 100,y = 100)
[Link]()
13. Buton radio:
Set of buttons of whichonly one can be "pressed" (similar to
HTML input radio
14. Scrollbar:
Widget-ul de scroll este folosit pentru a derula conț inutul în jos.
alte widget-uri precum listbox, text ș i canvas. Cu toate acestea, noi
[Link]
Este folosit pentru a afiș a datele textuale în aplicaț ia Python.
Cu toate acestea, Tkinter ne oferă widgetul Entry care este utilizat
pentru a implementa caseta de text pe o singură linie.
Widgetul Text este folosit pentru a afisa text pe mai multe linii
defsel():
selection = "You selected the option " + str([Link]())
[Link](text = selectie)
radacina = Tk()
var = IntVar()
R1 =Radiobutton(root, text=“C", variable=var, value=1,
comandă=sel)
[Link]( ancora = W )
label = Label(root)
[Link]()
[Link]()
Ex: scroll bar:
root = Tk()
scrollbar = Scrollbar(root)
mainloop()
Ex: text
din tkinter import *
def onclick():
trece
root = Tk()
Text(root)
[Link](INSERT, "Bună.....")
La revedere.....
[Link]()
text.tag_add("aici", "1.0", "1.4")
text.tag_add("start", "1.8", "1.13")
text.tag_config("aici", background="galben", foreground="albastru")
text.tag_config("start", fundal="negru", primplan="verde")
[Link]()
17. spinbox:
Widgetul Spinbox este o variantă a widgetului standard Tkinter Entry, care poate fi
utilizat pentru a selecta dintr-un număr fix de valori.
Ex:
din tkinter import *
master = Tk()
w = Spinbox(master, de la=0, la=10)
[Link]()
bucle principal()
Tur Scurt al Altora Interfeț e Grafice
Pmwis este doar o extensie pentru Tkinter, este cel mai uș or de instalat (doar extrage în
pachetele dvs. de site).
Este un set de instrumente pentru construirea de widgeturi compuse de nivel înalt în Python folosind
pachetul tkinter.
Aceste megawidget-uri includ notebook-uri, combobox-uri, widget-uri de selecț ie, widget-uri împărț ite,
wxPython este open source, ceea ce înseamnă că este gratuit pentru oricine să-l folosească ș i sursa
codul este disponibil pentru oricine să-l vizualizeze ș i să-l modifice. Ș i oricine poate contribui cu soluț ii sau
În cele mai multe cazuri, widgeturile native sunt folosite pe fiecare platformă pentru a oferi o experienț ă 100% nativă.
GTK este un toolkit de interfa ț ă pentru utilizator, open-source ș i multiplatformă, pentru dezvoltare.
frameworks.
Sunt cadre populare utilizate pentru Linux deoarece sunt open-source ș i oferă
dezvoltatorilor un set puternic de instrumente pentru a proiecta Interfeț e Grafice ale Utilizatorului.
PyGTK este un set de wrapper-e Python pentru biblioteca de interfaț ă grafică GTK+.
GTK este doar un toolkit de widget-uri pentru aplicaț iile GNOME (colecț ie de aproximativ 30
aplica ț ii), LXDE (mediu desktop gratuit cu resurse comparativ reduse
cerinț e) ș i Xfce (mediu de birou gratuit ș i open-source pentru Linux ș i BSD
sisteme de operare.) Medii desktop.
Modulele Asociate ș i Alte Interfeț e Grafice
De data aceasta, clienț ii web sunt browsere, aplicaț ii care le permit utilizatorilor să găsească documente pe
Internetul
De cealaltă parte se află serverele web, procese care rulează pe gazda unui furnizor de informaț ii
Un motiv important pentru a face acest lucru este că un browser oferă doar o capacitate limitată, adică, el
pe de altă parte, un program client, are capacitatea de a face mai mult, nu poate doar
descarcă datele, dar le poate ș i stoca, manipula sau poate chiar să le transmită către
o altă locaț ie sau aplicaț ie.
Aplicaț ii care folosesc modulul urllib pentru a descărca sau a accesa informaț ii pe Web
[utilizând fie [Link](), fie [Link]()] poate fi considerat un client Web simplu.
Tot ce trebuie să faceț i este să furnizaț i o adresă web validă.
Locaț ii Uniforme de Resurse:
Navigarea simplă pe web implică utilizarea adreselor web numite URL-uri (Uniform Resource)
Locatori). Astfel de adrese sunt folosite pentru a localiza un document pe Web sau pentru a apela un CGI
URL-urile fac parte dintr-un set mai mare de identificatori cunoscuț i sub numele de URI-uri (Uniform Resource)
Identificatori).
Un URL este pur ș i simplu un URI care foloseș te un protocol sau un sistem existent (de exemplu, http, ftp, etc.) ca
La fel ca adresele de pe stradă, adresele web au o anumită structură. O adresă de stradă americană
de obicei este de forma "număr denumire stradă," adică, 123 Strada Principală. Se diferenț iază de
alte ț ări, care au propriile lor reguli.
Un URL foloseș te formatul:
prot_sch://net_loc/path;params?query#frag
Din nou, net_loc poate fi împărț it în mai multe componente, unele necesare, altele
opț ional. Stringul net_loc arată astfel:
utilizator:parolă@host:port
Dintre cele patru, numele gazdei este cel mai important pentru rularea serverului web.
Numărul portului este necesar doar dacă serverul Web rulează pe un număr de port diferit.
din modul implicit.
Numele de utilizator ș i parolele sunt folosite doar atunci când se efectuează conexiuni FTP.
Pentru a trata URL-urile în funcț ionalităț i ș i capacităț i complet diferite. Python oferă două
module diferite,. Unul este urlparse, iar celălalt este urllib.
1. Modul urlparse:
Modulul urlparse oferă funcț ionalitate de bază pentru a manipula ș irurile URL.
Aceste funcț ii includ -
1. urlparse()
2. urlunparse(), ș i
3. urljoin()
[Link]():
urlparse() descompune un ș ir URL în unele dintre componentele majore (prot_sch,
net_loc, cale, parametrii, interogare, frag).
frag)
defProtSchindicates un protocol de reț ea implicit sau un schemă de descărcare în cazul în care nu este
furnizat [Link].
[Link] a flag that signals whether or not a fragment part of a URL is allowed.
>>> [Link]('[Link]
urljoin() ia baseurl ș i îmbină calea sa de bază (net_loc plus calea completă până la, dar nu
inclusiv, un fiș ier la final) cu newurl.
De exemplu:
>>> [Link]('[Link] \
... 'current/lib/[Link]')
'[Link]
Modulul urllib:
urllib este un modul Python care poate fi folosit pentru a deschide URL-uri (Locaț ii de Resurse Uniforme).
sintaxă:
urlopen(urlstr,postQueryData=None)
urlopen() deschide URL-ul indicat de byurlstr. Dacă nu este dat niciun protocol sau schemă de descărcare, sau
Pentru toate cererile HTTP, tipul normal de cerere este "GET." În aceste cazuri, ș irul de interogare
Dacă metoda de solic a 'POST' este dorită, atunci stringul de interogare ar trebui să fie plasat în
variabila postQueryData.
Cereri GET ș i POST sunt cele două moduri de a "încărca" date pe un server Web. Când o
o conexiune de succes este realizată, urlopen() returnează un obiect asemănător unui fiș ier, ca ș i cum destinaț ia ar fi
for example, if our file object is f, then our "handle" would support the expected read
metode precum [Link](), [Link](), [Link](), [Link]() ș i [Link]().
[Link]():
Sintaxă:
urlretrieve(urlstr, localfile=None, downloadStatusHook=None)
Mai degrabă decât să citească de la URL, aș a cum face urlopen(), urlretrieve() va descărca pur ș i simplu.
Dacă fiș ierul a fost deja copiat de pe Internet sau dacă fiș ierul este local, nu există nicio consecinț ă ulterioară.
numele de fiș ier este denumirea fiș ierului local care conț ine datele descărcate.
mime_hdrs este setul de antete MIME returnate de serverul Web care răspunde.
[Link]() ș i urllib.quote_plus():
Funcț iile quote() preiau date URL ș i le "encodează" astfel încât să fie "potrivite" pentru
Ex:
>>> import urllib
Salut Lume@Python2
Bună lume@Python2
Când se apelează funcț ia quote*(), ș irul de date este convertit într-un ș ir echivalent care poate fi
Reț ineț i că funcț ia quote() consideră caracterele sigure în mod implicit. Asta înseamnă că nu
encode / character .
Funcț ia quote() acceptă un parametru denumit safe al cărui valoare implicită este/
Dacă doreș ti să codifici /caracterul de asemenea, atunci poț i face acest lucru furnizând un ș ir gol
în parametrul thesafe aș a -
>>> [Link]('/', safe='')
%2F‘
quote_plus() este similar cu quote() cu exceptia ca encodeaza si spatiile in semne de plus ( + ).
Ex:
>>> import urllib
Salut Lume@Python2
Hello Lume@Python2
[Link]()
urlencode() ia un dic ț ionar de perechi cheie-valoare ș i le encodează pentru a fi incluse ca
o parte a unei interogări într-un ș ir URL de cerere CGI.
Ex:
>>> aDict = { 'name': 'Georgina Garcia', 'hmdir': '~ggarcia' }
>>> [Link](aDict)
'name=Georgina+Garcia&hmdir=%7eggarcia'
Modulul urllib2:
urllib2 este un modul Python care poate fi folosit pentru a accesa URL-uri.
biscuiț i ș i altele)
Diferenț a între urllib ș i urllib2
Deș i ambele module fac lucruri legate de cererile URL, ele au funcț ionalităț i diferite.
urllib2 poate accepta un obiect Request pentru a seta anteturile pentru o cerere URL, urllib
CGI este folosit ca o interfa ț ă între serverul web ș i componentele instalate suplimentar
aplicaț ii care generează conț inut web dinamic. Aceste aplicaț ii sunt numite scripturi CGI
ș i sunt scrise în diferite scripturi ș i limbaje de programare, cum ar fi PHP, Perl, Python,
etc.
CGI permite programelor CGI să proceseze formulare HTML sau alte date care vin de la clienț i,
1. Clientul trimite o cerere către serverul care rulează pe masina ta. Cererea ar putea fi
pentru un document, sau ca conț inutul unui formular HTML.
Dacă cererea este pentru un document regulamentar (cum ar fi un document HTML sau un fiș ier .GIF), atunci
Dacă cererea este date destinate unei aplicaț ii externe, atunci serverul trebuie să folosească CGI.
pentru a rula acea aplicaț ie.
De exemplu, cererea clientului ar putea fi să caute într-o bază de date. Aplicaț ia CGI
preia criteriile de căutare, caută în baza de date, apoi trimite rezultatele înapoi clientului.
2. Când un server prime ș te o solicitare care trebuie gestionată de o aplica ț ie externă
(o cerere aCGI) pe care serverul o creează o copie a sa.
Acest al doilea proces se numeș te procesul CGI deoarece este procesul în care
Programul CGI va rula.
Programul CGI preia datele pe care serverul le furnizează prin intermediul mediului
Procesează datele, contactează orice servicii externe de care are nevoie ș i apoi trimite un
răspuns către server prin intermediul căilor de date folosind ieș irea standard.
Programul tău poate să fie capabil să emită orice tip de date de care are nevoie, inclusiv HTML, GIF-uri sau
JPEG-uri.
Aplicaț ii CGI:
Aplicaț iile CGI care creează HTML-ul sunt de obicei scrise într-una din multe limbaje de programare de nivel înalt.
limbaje de programare de nivel înalt care au capacitatea de a accepta datele utilizatorului, de a le procesa ș i de
Când un script aCGI începe, acesta trebuie să recupereze datele formularului furnizate de utilizator, dar
trebuie să obț ină aceste date de la clientul web, nu de la un utilizator de pe maș ina serverului ș i nici de la
Datele returnate trebuie să fie un set de antete valide urmate de HTML. Dacă nu este, va apărea o eroare.
va avea loc deoarece clienț ii Web sunt un browser, el înț elege doar date HTTP valide (de exemplu, MIME
antete ș i HTML).
Modulul cgi
Există o clasă principală în modulul cgi, adică clasa FieldStorage.
Această clasă ar trebui să fie instanț iată atunci când un script CGI Python începe, deoarece va citi toate
informa ț ii relevante despre utilizator din clientul web (prin intermediul serverului web).
Odată ce acest obiect a fost instanț iat, acesta va consta dintr-un obiect asemănător unui dicț ionar care are
un set de perechi cheie-valoare. Cheile sunt numele elementelor de formă care au fost transmise
prin intermediul formularului, în timp ce valorile conț in datele corespunzătoare.
Aceste valori în sine pot fi unul dintre cele trei obiecte. Ele pot fi
ș i datele.
În cele din urmă, ele pot fi o listă de astfel de obiecte. Aceasta se întâmplă atunci când un formular conț ine mai mult decât
Dacă doreș ti un server Web real, probabil că vei descărca ș i instala Apache. Există
Plug-in-uri sau module Apache pentru gestionarea CGI Python.
Dacă vrei să porneș ti cel mai basic server Web, doar execută-l direct cu Python:
$ python -m CGIHTTPServer
Aceasta va porni un server web pe portul 8000 pe maș ina ta curentă din actual
director. Apoi, poț i crea un Cgi-bin chiar sub directorul din care te
am început serverul ș i am pus scripturile tale Python CGI acolo.
Pune câteva fiș iere HTML în acel director ș i poate câteva scripturi .py CGI în Cgi-bin, ș i tu
sunteț i pregătiț i să "navigaț i" direct către acest site web cu adrese care arată cam aș a:
[Link]
[Link]
2. Crearea paginii de formular
Acest fiș ier HTML ([Link]) prezintă un formular utilizatorului cu un câmp gol pentru
numele utilizatorului ș i un set de butoane radio pentru ca utilizatorul să aleagă.
Acest script CGI preia persoana ș i câte câmpuri din formular ș i foloseș te aceste date
pentru a crea ecranul de rezultate generate dinamic.
1 #!/usr/bin/env python([Link])
2
3import cgi
4
5 reshtml = '''Tip de conț inut: text/html\n
6 <HTML><HEAD><TITLE>
Demo CGI 7 Prieteni (ecran dinamic)
8 </TITLE></HEAD>
9 <BODY><H3>Lista de prieteni pentru: <I>%s</I></H3>
Numele tău este: <B>%s</B><P>
Ai <B>%s</B> prieteni.
12 </BODY></HTML>'''
13
14 form = [Link]()
15 cine = form['persoană'].valoare
16 howmany = form['howmany'].value
17print reshtml % (cine, cine, câț i)
Acest script conț ine toată puterea de programare pentru a citi inputul formularului ș i a-l procesa, aș a cum
presupunând că utilizatorul a tastat "erick allen" ca nume ș i a făcut clic pe butonul de opț iune "10 prieteni"
buton.
4. Site-uri web complet interactive:
Un utilizator introduce informaț iile sale din pagina de formular. Apoi procesăm datele ș i
afiș aț i o pagină de rezultate.
Acum, vom adăuga un link la pagina de rezultate care va permite utilizatorului să se întoarcă la formular.
pagina, dar mai degrabă decât să prezentăm un formular gol, vom completa datele pe care utilizatorul le-a
deja furnizată.
CGI avansat
Aceste CGI avansate includ utilizarea cookie-urilor, datele cache salvate pe partea clientului
valori multiple pentru acelaș i câmp CGI ș i încărcarea fiș ierelor folosind trimiterea formularului multipart.
Pentru un site web comercial, este necesar să menț ină informaț iile de sesiune între diferite
pagini.
De exemplu, o înregistrare a unui utilizator se încheie după completarea multor pagini. Cum să menț ii
În multe situaț ii, utilizarea cookie-urilor este cea mai eficientă metodă de a reț ine ș i
preferinț e de urmărire, achiziț ii, comisioane ș i alte informaț ii necesare pentru o mai bună
experienț a vizitatorului sau statisticile site-ului.
Cum funcț ionează?
Când serverul trimite niș te date browser-ului vizitatorului sub formă de cookie. Browserul
poate accepta cookie-ul. Dacă o face, este stocat ca un record de text simplu pe hard disk-ul vizitatorului
conduce.
Acum, când vizitatorul ajunge pe o altă pagină a site-ului tău, cookie-ul este disponibil pentru
recuperare. Odată recuperate, serverul tău ș tie/îș i aminteș te ce a fost stocat.
Cookie-urile sunt un registru de date în text simplu format din 5 câmpuri de lungime variabilă -
Expires− Thedate the cookiewill expire. If this is blank, the cookie will expire when the
vizitatorul părăseș te browserul.
Cale− Calea către directorul sau pagina web care setează cookie-ul. Aceasta poate fi goală dacă tu
vrea să recupereze cookie-ul din orice director sau pagină.
Securizat− Dacă acest câmp conț ine cuvântul "securizat", atunci cookie-ul poate fi recuperat numai cu
un server securizat. Dacă acest câmp este gol, nu există restricț ii de acest fel.
Name=Value− Cookies are set and retrieved in the form of key and value pairs.
Configurarea Cookies
Este foarte uș or să trimiti cookie-uri către browser. Aceste cookie-uri sunt trimise împreună cu HTTP
Este opț ional să setăm atributele cookie-urilor precum Expiră, Domeniu ș i Cale.
Este de remarcat că cookie-urile sunt setate înainte de linia "Content-type:text/html ."
Retragerea cookie-urilor:
Este foarte uș or să recuperezi toate cookie-urile setate. Cookie-urile sunt stocate în mediul CGI
Acest lucru produce următorul rezultat pentru cookie-urile setate de scriptul de mai sus -
User ID = XYZ
Password = XYZ123
File Upload:
Pentru a încărca un fiș ier, formularul HTML trebuie să aibă atributul enctype setat la multipart/form-data.
Fiecare dintre casetele de selectare este etichetată cu acelaș i nume de câmp, dar pentru a le diferenț ia,
Aș a cum ș tiț i, datele de la utilizator sunt trimise serverului sub formă de perechi cheie-valoare în timpul
trimiterea formularului.
Când mai multe casete de selecț ie sunt trimise, vei avea valori multiple
asociate cu aceeaș i cheie. În aceste cazuri, mai degrabă decât a fi dat un singur
Instanț ă MiniFieldStorage pentru datele tale, modulul cgi va crea o listă de astfel de
instanț ele pe care le vei itera pentru a obț ine valorile diferite.
Servere Web (HTTP):
Un server web HTTP nu este nimic altceva decât un proces care rulează pe masina ta ș i face
exactly două lucruri:
1- Ascultă pentru cererile http de intrare pe o adresă specifică a socket-ului TCP (adresă IP
ș i un număr de port)
Procesează această solicitare ș i trimite un răspuns înapoi utilizatorului.
Serverul de bază (Web) este un element tip boilerplate, un must-have. Rolul său este de a efectua
Modul BaseHTTPServer.
Handlerul este piesa de software care se ocupă de majoritatea "servirii web."
Procesează cererea clientului ș i returnează fiș ierul corespunzător, fie el static sau
generat dinamic de CGI.
Complexitatea handler-ului determină complexitatea serverului tău web.
Biblioteca standard Python oferă trei handleri diferiț i:
HEADrequests.
solicită. Are capacitatea de a apela scripturi CGI pentru a efectua procesarea solicitată ș i
Modul Description
Am menț ionat mai devreme, un server web este un proces care ascultă cererile de intrare pe
adresa TCP specifică. Adresa TCP este identificată printr-o adresă IP ș i un număr de port.
În al doilea rând, un server web trebuie să fie instruit cum să gestioneze cererile de intrare.
Aceste cereri Incoming sunt gestionate de gestionari speciali. Poț i să te gândeș ti la un web