Cum se folosește Python SimpleHTTPServer

How Use Python Simplehttpserver



Sarcina principală a serverului web este de a gestiona solicitările HTTP de la client. Acesta așteaptă solicitările HTTP care vin de la adresa IP și numărul portului, gestionează solicitarea și trimite răspunsul clientului înapoi. Python folosește SimpleHTTPServer modul pentru a crea un server web instant și ușor de servit 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.





$ python3 -m http.Server 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

$CDWeb

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

< html >

< cap >

< titlu >

Testați serverul web Python

</ titlu >

</ cap >

< corp >

< centru >

< img src=„logo.jpeg” Tot='Imagine negasita'/>

< h2 stil=„culoare: verde”>Felicitări! Serverul dvs. web rulează cu succes.</ h2 >

< p >Vizita< la href=„www.linuxhint.com”>LinuxHint.com</ la >pentru mai multe tutoriale pe Python</ p >

</ centru >

</ corp >

</ html >

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 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 import

importhttp.Server

# Importați modulul SocketServer

importsocketerver


# 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

cusocketerver.TCPServer(('',port),Manipulator) la fel dehttpd:

imprimare(„Serverul Web rulează la http: // localhost:% s”%port)

httpd.servește_ pentru totdeauna()

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.

http: // localhost: 8080

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 import

importhttp.Server

# Importați modulul SocketServer

importsocketerver

# Importați modulul sys

import sys


încerca:

# Setați numărul portului

dacă sys.argv[1:]:

port= int(sys.argv[1])

altceva:

port= 5000

# Setați adresa IP

adresa serverului= („127.0.0.1”,port)

# Creați obiect pentru gestionarea solicitărilor HTTP

Manipulator=http.Server.SimpleHTTPRequestHandler


# Rulați serverul web pentru totdeauna pentru a gestiona solicitările HTTP

cusocketerver.TCPServer(('',port),Manipulator) la fel dehttpd:

imprimare(„Serverul Web rulează la http: // localhost:% s”%port)

httpd.servește_ pentru totdeauna()

# Oprit serverul

cu exceptia KeyboardInterrupt:

httpd.server_închis()

imprimare(„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 server

importhttp.Server


# Setați numele gazdei

GAZDĂ= 'gazdă locală'

# Setați numărul portului

PORT= 4000


# Definiți clasa pentru a afișa pagina index a serverului web

clasăPythonServer(http.Server.SimpleHTTPRequestHandler):

defface_GET(de sine):

dacă de sine.cale == „/”:

de sine.cale = „testHTML.html”

întoarcerehttp.Server.SimpleHTTPRequestHandler.face_GET(de sine)


# Declarați obiectul clasei

webServer=http.Server.HTTPServer((GAZDĂ,PORT),PythonServer)


# Imprimați adresa URL a serverului web

imprimare(„Serverul a început http: //% s:% s”%(GAZDĂ,PORT))


încerca:

# Rulați serverul web

webServer.servește_ pentru totdeauna()

cu exceptia KeyboardInterrupt:

# Opriți serverul web

webServer.server_închis()

imprimare(„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ă adresa URL de bază a browserului pentru serverul web.

Concluzie

Diferitele modalități 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.