Python

Hvordan bruke Python SimpleHTTPServer

Hvordan bruke Python SimpleHTTPServer

Hovedoppgaven til webserveren er å håndtere HTTP-forespørsler fra klienten. Den venter på HTTP-forespørsler som kommer fra den bestemte IP-adressen og portnummeret, håndterer forespørselen og sender klientens svar tilbake. Python bruker SimpleHTTPServer modul for å opprette en webserver umiddelbart og enkelt servere innholdet i filen fra serveren. Den kan også brukes til fildeling. For dette må du aktivere denne modulen med plasseringen av de delbare filene. Denne modulen leveres med Python-tolk. Du trenger ikke å installere den. Siden denne modulen er slått sammen med http.server modul i python3, så du må kjøre http.server for å kjøre webserveren i python3. Hvordan webserveren kan brukes til å håndtere HTTP-forespørsel og dele filer, har blitt vist i denne veiledningen.

Kjør webserveren fra terminalen

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

$ python3 -m http.server

Følgende utdata vises hvis webserveren startes riktig. CTRL + C trykkes for å stoppe serveren.


Kjør følgende kommando for å starte webserveren ved 8080-porten.

$ 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 med navnet nett og gå til mappen. Alle skriptfilene og HTML-filene i denne opplæringen blir opprettet i denne mappen.

$ mkdir web
$ cd web

Opprett en HTML-fil med navnet testHTML.html inne i nett mappe med følgende skript. Denne filen vil bli servert fra webserveren senere.

testHTML.html



<br>Test Python Web Server<br>



Bildet ble ikke funnet

Gratulerer! Webserveren din kjører vellykket.


Besøk LinuxHint.com for flere opplæringsprogrammer om Python




Eksempel 1: Kjør webserveren i det spesifikke portnummeret

Opprett en python-fil med følgende skript for å kjøre webserveren ved 8008 port. http.server modulen er importert for å kjøre webserveren, og SocketServer modulen er importert for å håndtere HTTP-forespørselen som kommer fra 8080-porten. Et objekt som heter Behandler er opprettet for å håndtere HTTP-forespørsler. for evig() funksjonen kalles for å kjøre webserveren. Ingen avslutningsbetingelser er lagt til skriptet. Så skriptet vil generere en feil når brukeren prøver å stoppe serveren.

# Importer servermodul
importer http.server
# Importer SocketServer-modul
importer socketserver
# Still 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ørsler
med stikkontaktserver.TCPServer (("", port), Handler) som httpd:
skriv ut ("Web Server kjører på http: // localhost:% s"% port)
httpd.serve_forever ()

Produksjon

Følgende utdata vises når du har utført skriptet ovenfor.


Listen over filene og mappen til skriptplasseringen vises hvis følgende URL kjøres fra nettleseren.

http: // localhost: 8080

Hvis brukeren trykker CTRL + C fra terminalen eller trykker på stoppknappen fra PyCharm-editoren, vises følgende feilmelding. Dette problemet er løst i neste eksempel på denne veiledningen.

Eksempel 2: Kjør webserveren med portnummeret definert av kommandolinjen

Opprett en python-fil med følgende skript for å kjøre en webserver i den bestemte porten hvis kommandolinjeargumentet gir portnummeret; ellers vil 5000 bli brukt som standardport. sys modulen har blitt importert i skriptet for å lese kommandolinjens argumentverdier. prøv-unntatt blokk er lagt til i skriptet for å håndtere feilen når brukeren prøver å stoppe serveren.  Hvis unntaket KeyboardInterrupt vises etter at du har kjørt serveren, vil Lukk() funksjon vil bli kalt for å stoppe webserveren.

# Importer servermodul
importer http.server
# Importer SocketServer-modul
importer socketserver
# Importer sys-modul
importer sys
prøve:
# Still portnummeret
hvis sys.argv [1:]:
port = int (sys.argv [1])
ellers:
port = 5000
# Angi IP-adressen
server_adresse = ('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ørsler
med stikkontaktserver.TCPServer (("", port), Handler) som httpd:
skriv ut ("Web Server kjører på http: // localhost:% s"% port)
httpd.serve_forever ()
# Stoppet serveren
unntatt KeyboardInterrupt:
httpd.server_close ()
skriv ut ("Serveren er stoppet.")

Produksjon

Følgende utdata vises etter utførelse av ovennevnte skript uten kommandolinje argumentverdi.

Følgende utdata vises hvis du kjører HTML-filen som ble opprettet i forrige trinn fra webserveren.

Åpne konfigurasjonsdialogboksen fra Run-menyen i PyCharm-redigereren for å stille kommandolinjens argumentverdi. Parameterfelt brukes til å angi kommandolinjeargumentet, og 3000 settes her som argumentverdi.

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. Vertsnavnet og portnummeret er definert i begynnelsen av skriptet. PythonServer klasse har definert i skriptet å vise HTML-filen i nettleseren når webserveren begynner å kjøre.

# Importer servermodulen
importer http.server
# Angi vertsnavnet
HOST = "lokal vert"
# Still portnummeret
PORT = 4000
# Definer klasse for å vise indeksiden til webserveren
klasse PythonServer (http.server.SimpleHTTPRequestHandler):
def do_GET (selv):
hvis selv.sti == '/':
selv-.sti = 'testHTML.html '
returner http.server.SimpleHTTPRequestHandler.do_GET (selv)
# Erklær objektet til klassen
webServer = http.server.HTTPServer ((HOST, PORT), PythonServer)
# Skriv ut URL-adressen til webserveren
skriv ut ("Server startet http: //% s:% s"% (HOST, PORT))
prøve:
# Kjør webserveren
Internett server.serve_forever ()
unntatt KeyboardInterrupt:
# Stopp webserveren
Internett server.server_close ()
skriv ut ("Serveren er stoppet.")

Produksjon

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

Den neste siden vises i nettleseren hvis nettleserens grunnleggende URL til webserveren kjøres.

Konklusjon

De forskjellige måtene å implementere webservere på http. server modulen har vist i denne veiledningen for å hjelpe pythonbrukere med å lage en enkel webserver i Python.

Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...
Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...