Sarcina principală a serverului web este de a gestiona solicitările HTTP de la client. Așteptă cererile HTTP care vin de la adresa IP și numărul portului, gestionează cererea și trimite răspunsul clientului înapoi. Python folosește SimpleHTTPServer modul pentru a crea un server web instantaneu și pentru a servi cu ușurință conținutul fișierului de pe server. Poate fi folosit și pentru partajarea de fișiere. Pentru aceasta, trebuie să activați acest modul cu locația fișierelor care pot fi partajate. Acest modul vine cu interpretul Python. Nu este nevoie să-l instalați. Deoarece acest modul este combinat cu http.Server modul în python3, deci trebuie să rulați http.Server pentru a rula serverul web în python3. Modul în care serverul web poate fi utilizat pentru a gestiona cererile HTTP și pentru a partaja fișiere, a fost prezentat în acest tutorial.
Rulați serverul web de la terminal
Rulați următoarea comandă pentru a rula serverul web de la terminal. Dacă în comandă nu este definit niciun număr de port, serverul web va începe în mod implicit la 8000 de porturi.
$ python3 -m http.Server
Următoarea ieșire va apărea dacă serverul web este pornit corect. CTRL + C este apăsat pentru a opri serverul.
Rulați următoarea comandă pentru a porni serverul web la portul 8080.
Următoarea ieșire va apărea dacă serverul web este pornit la portul 8080.
Rulați serverul Web utilizând scriptul Python
Rulați următoarele comenzi pentru a crea un folder numit web și mergeți la dosar. Toate fișierele script și fișierele HTML ale acestui tutorial vor fi create în acest folder.
$ mkdir web$ cd web
Creați un fișier HTML numit testHTML.html în interiorul web folder cu următorul script. Acest fișier va fi transmis mai târziu de pe serverul web.
testHTML.html
Testați serverul web Python
Felicitări! Serverul dvs. web rulează cu succes.
Vizita LinuxHint.com pentru mai multe tutoriale pe Python
Exemplu-1: Rulați serverul web în numărul portului specific
Creați un fișier python cu următorul script pentru a rula serverul web la portul 8008. http.Server Modulul a fost importat pentru a rula serverul de web și fișierul SocketServer modulul a fost importat pentru a gestiona cererea HTTP care vine de la portul 8080. Un obiect numit Handler a fost creat pentru a gestiona solicitările HTTP. pentru totdeauna() funcția este apelată pentru a rula serverul web. Nu a fost adăugată nicio condiție de reziliere la script. Deci, scriptul va genera o eroare atunci când utilizatorul încearcă să oprească serverul.
# Modul server de importimportă http.Server
# Importați modulul SocketServer
import socketerver
# Setați numărul portului
port = 8080
# Creați obiect pentru gestionarea solicitărilor HTTP
Handler = http.Server.SimpleHTTPRequestHandler
# Rulați serverul pentru totdeauna pentru a gestiona solicitările HTTP
cu socketerver.TCPServer (("", port), Handler) ca httpd:
print ("Serverul Web rulează la portul http: // localhost:% s"%)
httpd.serve_forever ()
Ieșire
Următoarea ieșire va apărea după executarea scriptului de mai sus.
Lista fișierelor și a folderului locației scriptului va fi afișată dacă următoarea adresă URL este executată din browser.
Dacă utilizatorul apasă CTRL + C de la terminal sau apasă butonul de oprire din editorul PyCharm, va fi afișat următorul mesaj de eroare. Această problemă a fost rezolvată în următorul exemplu al acestui tutorial.
Exemplu-2: Rulați serverul web cu numărul portului definit de linia de comandă
Creați un fișier python cu următorul script pentru a rula un server web la portul respectiv dacă argumentul liniei de comandă dă numărul portului; în caz contrar, 5000 va fi folosit ca port implicit. sys modulul a fost importat în script pentru a citi valorile argumentului din linia de comandă. încercați-cu excepția bloc a fost adăugat în script pentru a gestiona eroarea atunci când utilizatorul încearcă să oprească serverul. Dacă apare excepția KeyboardInterrupt după rularea serverului, atunci închide() funcția va fi apelată pentru a opri serverul web.
# Modul server de importimportă http.Server
# Importați modulul SocketServer
import socketerver
# Importați modulul sys
import sisteme
încerca:
# Setați numărul portului
dacă sys.argv [1:]:
port = int (sys.argv [1])
altceva:
port = 5000
# Setați adresa IP
server_address = ('127.0.0.1 ', port)
# Creați obiect pentru gestionarea solicitărilor HTTP
Handler = http.Server.SimpleHTTPRequestHandler
# Rulați serverul web pentru totdeauna pentru a gestiona solicitările HTTP
cu socketerver.TCPServer (("", port), Handler) ca httpd:
print ("Serverul Web rulează la portul http: // localhost:% s"%)
httpd.serve_forever ()
# Oprit serverul
cu excepția KeyboardInterrupt:
httpd.server_close ()
print ("Serverul este oprit.")
Ieșire
Următoarea ieșire va apărea după executarea scriptului de mai sus fără valoarea argumentului din linia de comandă.
Următoarea ieșire va apărea dacă rulați fișierul HTML creat în pasul anterior de pe serverul web.
Deschideți caseta de dialog de configurare din meniul Run al editorului PyCharm pentru a seta valoarea argumentului din linia de comandă. Câmpul Parametri este utilizat pentru a seta argumentul liniei de comandă, iar 3000 este setat aici ca valoare a argumentului.
Următoarea ieșire va apărea dacă rulați din nou scriptul după ce ați setat valoarea argumentului.
Exemplu-3: Rulați serverul web cu fișierul HTML
Creați un fișier python cu următorul script pentru a rula serverul web definind fișierul HTML pentru adresa URL de bază. Numele gazdei și numărul portului au fost definite la începutul scriptului. PythonServer class a definit în script pentru a afișa fișierul HTML în browser când serverul web începe să ruleze.
# Importați modulul serverimportă http.Server
# Setați numele gazdei
HOST = "localhost"
# Setați numărul portului
PORT = 4000
# Definiți clasa pentru a afișa pagina index a serverului web
clasa PythonServer (http.Server.SimpleHTTPRequestHandler):
def do_GET (self):
dacă eul.cale == '/':
de sine.cale = 'testHTML.html '
returnează http.Server.SimpleHTTPRequestHandler.face_GET (auto)
# Declarați obiectul clasei
webServer = http.Server.HTTPServer ((HOST, PORT), PythonServer)
# Imprimați adresa URL a serverului web
print („Serverul a început http: //% s:% s”% (HOST, PORT))
încerca:
# Rulați serverul web
webServer.serve_forever ()
cu excepția KeyboardInterrupt:
# Opriți serverul web
webServer.server_close ()
print ("Serverul este oprit.")
Ieșire
Următoarea ieșire va apărea executând scriptul de mai sus.
Următoarea pagină va apărea în browser dacă se execută URL-ul de bază al browserului de pe webserver.
Concluzie
Diferitele moduri de implementare a serverelor web prin utilizarea http. Server modulul a arătat în acest tutorial pentru a ajuta utilizatorii Python să creeze un server web simplu în Python.