Hvordan bruke Python SimpleHttpServer

Hvordan bruke Python SimpleHttpServer

Hovedoppgaven til webserveren er å håndtere HTTP -forespørslene fra klienten. Det venter på at HTTP -forespørslene kommer fra den aktuelle IP -adressen og portnummeret, håndterer forespørselen og sender klientens svar tilbake. Python bruker Simplehttpserver Modul for å opprette en webserver øyeblikkelig og enkelt tjene innholdet i filen fra serveren. Det kan brukes til fildeling også. For dette må du aktivere denne modulen med plasseringen av de delbare filene. Denne modulen kommer med Python -tolken. Du trenger ikke å installere det. Siden denne modulen er slått sammen med http.server modul i python3, så du må løpe http.server å kjøre webserveren i python3. Hvordan webserver kan brukes til å håndtere HTTP -forespørsel og dele filer, har blitt vist i denne opplæringen.

Kjør webserveren fra terminalen

Kjør følgende kommando for å kjøre webserveren fra terminalen. Hvis ikke noe portnummer er definert i kommandoen, starter webserveren på 8000 port som standard.

$ python3 -m http.server

Følgende utdata vises hvis webserveren startes riktig. Ctrl+C er trykket for å stoppe serveren.


Kjør følgende kommando for å starte webserveren på 8080 port.

$ python3 -m http.Server 8080

Følgende utdata vises hvis webserveren startes i 8080 -porten.

Kjør webserveren ved hjelp av Python -skript

Kjør følgende kommandoer for å opprette en mappe som heter Web og gå til mappen. Alle skriptfilene og HTML -filene til denne opplæringen vil bli opprettet i denne mappen.

$ mkdir web
$ CD Web

Lag en HTML -fil som heter testhtml.html inne i Web mappe med følgende skript. Denne filen vil bli servert fra webserveren senere.

testhtml.html



<br>Test Python -webserveren<br>




Gratulerer! Webserveren din kjører vellykket.


Besøk Linuxhint.com For flere opplæringsprogrammer på Python




Eksempel-1: Kjør webserveren i det spesifikke portnummeret

Lag en Python -fil med følgende skript for å kjøre webserveren på 8008 port. http.server modulen er importert for å kjøre webserveren, og SocketServer Modulen er importert for å håndtere HTTP -forespørselen fra 8080 -porten. Et objekt som heter Handler er opprettet for å håndtere HTTP -forespørslene. for alltid() Funksjon kalles for å kjøre webserveren. Ingen termineringsbetingelser er lagt til i skriptet. Så skriptet vil generere en feil når brukeren prøver å stoppe serveren.

# Importer servermodul
Importer http.server
# Import SocketServer -modulen
Importer SocketServer
# Angi portnummeret
Port = 8080
# Opprett objekt for håndtering av HTTP -forespørsler
Handler = http.server.SimplehttpRequestHandler
# Kjør serveren for alltid for å håndtere HTTP -forespørslene
med SocketServer.TCPSERVER (("", port), handler) som httpd:
Print ("Webserver kjører på http: // localhost: %s" %port)
httpd.server_forever ()

Produksjon

Følgende utdata vises etter å ha utført skriptet ovenfor.


Listen over filene og mappen på skriptstedet vises hvis følgende URL blir utført fra nettleseren.

http: // localhost: 8080

Hvis brukeren trykker på Ctrl+C fra terminalen eller trykker på stoppknappen fra Pycharm -redigereren, vises følgende feilmelding. Dette problemet har løst i neste eksempel på denne opplæringen.

Eksempel-2: Kjør webserveren med portnummeret definert av kommandolinje

Opprett en Python-fil med følgende skript for å kjøre en webserver i den aktuelle porten hvis kommandolinje-argumentet gir portnummeret; Ellers vil 5000 bli brukt som standardport. sys Modulen er importert i skriptet for å lese kommandolinje-argumentverdiene. prøve-bortsett fra Blokk er lagt til i skriptet for å håndtere feilen når brukeren prøver å stoppe serveren. Hvis tastaturinterrupt unntak vises etter å ha kjørt serveren, så er Lukk() Funksjon vil bli kalt for å stoppe webserveren.

# Importer servermodul
Importer http.server
# Import SocketServer -modulen
Importer SocketServer
# Importer SYS -modul
Importer Sys
prøve:
# Angi portnummeret
Hvis sys.Argv [1:]:
port = int (sys.Argv [1])
ellers:
port = 5000
# Angi IP -adressen
server_address = ('127.0.0.1 ', port)
# Opprett objekt for håndtering av HTTP -forespørsler
Handler = http.server.SimplehttpRequestHandler
# Kjør webserveren for alltid for å håndtere HTTP -forespørslene
med SocketServer.TCPSERVER (("", port), handler) som httpd:
Print ("Webserver kjører på http: // localhost: %s" %port)
httpd.server_forever ()
# Stoppet serveren
unntatt tastaturinterrupt:
httpd.server_close ()
skriv ut ("Serveren er stoppet.")

Produksjon

Følgende utdata vises etter å ha utført skriptet ovenfor uten kommandolinje argumentverdi.

Følgende utdata vises hvis Kjør HTML -filen som opprettes i forrige trinn fra webserveren.

Åpne konfigurasjonsdialogboksen fra Run-menyen til Pycharm Editor for å angi kommandolinje-argumentverdien. Parameters felt brukes til å angi kommandolinjeargumentet, og 3000 er satt her som argumentverdien.

Følgende utdata vises hvis du kjører skriptet igjen etter å ha angitt argumentverdien.

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

Opprett en Python -fil med følgende skript for å kjøre webserveren ved å definere HTML -filen for basis -URL -en. Vertsnavnet og portnummeret har definert i begynnelsen av skriptet. Pythonsererver Klassen har definert i skriptet for å vise HTML -filen i nettleseren når webserveren begynner å kjøre.

# Importer servermodulen
Importer http.server
# Angi vertsnavnet
Vert = "localhost"
# Angi portnummeret
Port = 4000
# Definer klasse for å vise indekssiden til webserveren
klasse Pythonserver (http.server.SimplehttpRequestHandler):
def do_get (selv):
Hvis selv.bane == '/':
selv-.bane = 'testhtml.html '
Returner http.server.SimplehttpRequestHandler.do_get (selv)
# Erklære objektet for klassen
WebServer = http.server.Httpserver ((vert, port), pythonserver)
# Skriv ut nettadressen til webserveren
print ("Server startet http: //%s:%s"%(vert, port))
prøve:
# Kjør webserveren
Internett server.server_forever ()
unntatt tastaturinterrupt:
# Stopp webserveren
Internett server.server_close ()
skriv ut ("Serveren er stoppet.")

Produksjon

Følgende utdata vises som utfører skriptet ovenfor.

Følgende side vises i nettleseren hvis nettleserens base -URL for WebServer utfører.

Konklusjon

De forskjellige måtene å implementere webservere ved å bruke http. server Modulen har vist i denne opplæringen for å hjelpe Python -brukere med å opprette en enkel webserver i Python.