Sådan bruges Python SimpleHTTPServer

How Use Python Simplehttpserver



Webserverens hovedopgave er at håndtere HTTP -anmodninger fra klienten. Den venter på, at HTTP -anmodningerne kommer fra den særlige IP -adresse og portnummer, håndterer anmodningen og sender klientens svar tilbage. Python bruger SimpleHTTPS -server modul til at oprette en webserver med det samme og let betjene filens indhold fra serveren. Det kan også bruges til fildeling. Til dette skal du aktivere dette modul med placeringen af ​​de filer, der kan deles. Dette modul leveres med Python -tolken. Du behøver ikke at installere det. Da dette modul er fusioneret med http.server modul i python3, så du skal køre http.server at køre webserveren i python3. Hvordan webserver kan bruges til at håndtere HTTP -anmodninger og dele filer, er blevet vist i denne vejledning.

Kør webserveren fra terminalen

Kør følgende kommando for at køre webserveren fra terminalen. Hvis der ikke er defineret noget portnummer i kommandoen, starter webserveren som standard med 8000 port.







$ python3 -m http.server



Følgende output vises, hvis webserveren startes korrekt. CTRL+C trykkes for at stoppe serveren.




Kør følgende kommando for at starte webserveren ved 8080 port.





$ python3 -m http.server 8080

Følgende output vises, hvis webserveren startes på 8080 -porten.



Kør webserveren ved hjælp af Python -script

Kør følgende kommandoer for at oprette en mappe med navnet Web og gå til mappen. Alle scriptfiler og HTML -filer i denne vejledning oprettes inde i denne mappe.

$ mkdir web

$CDWeb

Opret en HTML -fil med navnet testHTML.html inde i Web mappe med følgende script. Denne fil vil blive serveret fra webserveren senere.

testHTML.html

< html >

< hoved >

< titel >

Test Python -webserveren

</ titel >

</ hoved >

< legeme >

< centrum >

< img src='logo.jpeg' alt='Billedet blev ikke fundet'/>

< h2 stil='farve: grøn'>Tillykke! Din webserver kører.</ h2 >

< s >Besøg< til href='www.linuxhint.com'>LinuxHint.com</ til >for flere selvstudier om Python</ s >

</ centrum >

</ legeme >

</ html >

Eksempel-1: Kør webserveren i det specifikke portnummer

Opret en python -fil med følgende script for at køre webserveren på 8008 -port. http.server modul er blevet importeret til at køre webserveren, og SocketServer modul er blevet importeret til at håndtere HTTP -anmodningen, der kommer fra 8080 -porten. Et objekt navngivet Handler er blevet oprettet til at håndtere HTTP -anmodningerne. for evigt() funktion kaldes til at køre webserveren. Der er ikke tilføjet nogen opsigelsesbetingelse til scriptet. Så scriptet genererer en fejl, når brugeren forsøger at stoppe serveren.

# Importer servermodul

importerehttp.server

# Importer SocketServer -modul

importeresocketserver


# Indstil portnummeret

Havn= 8080

# Opret objekt til håndtering af HTTP -anmodninger

Handler=http.server.SimpleHTTPRequestHandler


# Kør serveren for evigt for at håndtere HTTP -anmodningerne

medsocketserver.TCPServer(('',Havn),Handler) somhttpd:

Print('Webserver kører på http: // localhost:%s'%Havn)

httpd.serve_forever()

Produktion

Følgende output vises efter udførelse af ovenstående script.


Listen over filer og mappe for scriptplaceringen vises, hvis følgende URL udføres fra browseren.

http: // lokal vært: 8080

Hvis brugeren trykker på CTRL+C fra terminalen eller trykker på stopknappen fra PyCharm -editoren, vises følgende fejlmeddelelse. Dette problem er løst i det næste eksempel på denne vejledning.

Eksempel-2: Kør webserveren med portnummeret defineret af kommandolinjen

Opret en python-fil med følgende script for at køre en webserver på den bestemte port, hvis kommandolinjeargumentet giver portnummeret; ellers vil 5000 blive brugt som standardport. sys modul er blevet importeret i scriptet for at læse kommandolinjens argumentværdier. prøv-undtagen blok er blevet tilføjet i scriptet for at håndtere fejlen, når brugeren forsøger at stoppe serveren. Hvis undtagelsen KeyboardInterrupt vises efter serverens kørsel, vil tæt() funktion vil blive kaldt til at stoppe webserveren.

# Importer servermodul

importerehttp.server

# Importer SocketServer -modul

importeresocketserver

# Importer sys -modul

importere sys


prøve:

# Indstil portnummeret

hvis sys.argv[1:]:

Havn= int(sys.argv[1])

andet:

Havn= 5000

# Indstil IP -adressen

serveradresse= ('127.0.0.1',Havn)

# Opret objekt til håndtering af HTTP -anmodninger

Handler=http.server.SimpleHTTPRequestHandler


# Kør webserveren for evigt for at håndtere HTTP -anmodningerne

medsocketserver.TCPServer(('',Havn),Handler) somhttpd:

Print('Webserver kører på http: // localhost:%s'%Havn)

httpd.serve_forever()

# Stoppede serveren

undtagen TastaturInterrupt:

httpd.server_luk()

Print('Serveren er stoppet.')

Produktion

Følgende output vises efter udførelse af ovenstående script uden kommandolinjeargumentværdi.

Følgende output vises, hvis kør HTML -filen, der blev oprettet i det foregående trin fra webserveren.

Åbn konfigurationsdialogboksen i menuen Kør i PyCharm-editoren for at angive kommandolinjens argumentværdi. Parameterfelt bruges til at angive kommandolinjeargumentet, og 3000 angives her som argumentværdi.

Følgende output vises, hvis du kører scriptet igen efter indstilling af argumentværdien.

Eksempel-3: Kør webserveren med HTML-filen

Opret en python -fil med følgende script for at køre webserveren ved at definere HTML -filen for basis -URL'en. Værtsnavnet og portnummeret er defineret i begyndelsen af ​​scriptet. PythonServer class har defineret i scriptet til at vise HTML -filen i browseren, når webserveren begynder at køre.

# Importer servermodulet

importerehttp.server


# Indstil værtsnavnet

VÆRT= 'lokal vært'

# Indstil portnummeret

HAVN= 4000


# Definer klasse for at vise webservers indeksside

klassePythonServer(http.server.SimpleHTTPRequestHandler):

defdo_GET(selv):

hvis selv.sti == '/':

selv.sti = 'testHTML.html'

Vend tilbagehttp.server.SimpleHTTPRequestHandler.do_GET(selv)


# Erklær objekt for klassen

Webserver=http.server.HTTPS -server((VÆRT,HAVN),PythonServer)


# Udskriv webserverens URL

Print('Serveren startede http: //%s:%s'%(VÆRT,HAVN))


prøve:

# Kør webserveren

Webserver.serve_forever()

undtagen TastaturInterrupt:

# Stop webserveren

Webserver.server_luk()

Print('Serveren er stoppet.')

Produktion

Følgende output vises ved at udføre ovenstående script.

Den følgende side vises i browseren, hvis browserens basis -URL for webserveren udføres.

Konklusion

De forskellige måder at implementere webservere ved at bruge http. server modul har vist i denne vejledning for at hjælpe python -brugere med at oprette en simpel webserver i Python.