Slik bruker du Python SimpleHTTPServer

How Use Python Simplehttpserver



Hovedoppgaven til webserveren er å håndtere HTTP -forespørslene fra klienten. Den venter på at HTTP -forespørslene kommer fra den bestemte IP -adressen og portnummeret, håndterer forespørselen og sender klientens svar tilbake. Python bruker SimpleHTTPServer modul for å lage 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 filene som kan deles. 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å kjøre 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 det ikke er definert noe portnummer i kommandoen, starter webserveren som standard på 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 på 8080 port.





$ python3 -m http.server 8080

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



Kjør webserveren ved hjelp av Python -skript

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

$ mkdir web

$CDInternett

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

testHTML.html

< html >

< hode >

< tittel >

Test Python Web Server

</ tittel >

</ hode >

< kropp >

< senter >

< img src='logo.jpeg' alt='Bilde ikke funnet'/>

< h2 stil='farge: grønn'>Gratulerer! Nettserveren din kjører.</ h2 >

< s >Besøk< til href='www.linuxhint.com'>LinuxHint.com</ til >for flere opplæringsprogrammer om Python</ s >

</ senter >

</ kropp >

</ html >

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

Opprett 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 som kommer 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 avslutningsbetingelse er lagt til i skriptet. Så, skriptet vil generere en feil når brukeren prøver å stoppe serveren.

# Importer servermodul

importhttp.server

# Importer SocketServer -modul

importstikkontakt


# Angi portnummeret

havn= 8080

# Lag objekt for håndtering av HTTP -forespørsler

Handler=http.server.SimpleHTTPRequestHandler


# Kjør serveren for alltid for å håndtere HTTP -forespørslene

medstikkontakt.TCPServer(('',havn),Handler) somhttpd:

skrive ut('Web Server kjører på http: // localhost:%s'%havn)

httpd.serve_forever()

Produksjon

Følgende utdata vises etter at skriptet ovenfor er utført.


Listen over filene og mappen til skriptplasseringen vil bli vist hvis følgende URL er utført fra nettleseren.

http: // lokal vert: 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 opplæringen.

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

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

# Importer servermodul

importhttp.server

# Importer SocketServer -modul

importstikkontakt

# Importer sys -modul

import sys


prøve:

# Angi portnummeret

hvis sys.argv[1:]:

havn= int(sys.argv[1])

ellers:

havn= 5000

# Angi IP -adressen

server adresse= ('127.0.0.1',havn)

# Lag objekt for håndtering av HTTP -forespørsler

Handler=http.server.SimpleHTTPRequestHandler


# Kjør webserveren for alltid for å håndtere HTTP -forespørslene

medstikkontakt.TCPServer(('',havn),Handler) somhttpd:

skrive ut('Web Server kjører på http: // localhost:%s'%havn)

httpd.serve_forever()

# Stoppet serveren

unntatt Tastaturavbrudd:

httpd.server_close()

skrive ut('Serveren er stoppet.')

Produksjon

Følgende utdata vises etter at skriptet ovenfor er utført uten kommandolinjens argumentverdi.

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

Åpne konfigurasjonsdialogboksen fra Kjør-menyen i PyCharm-editoren for å angi kommandolinjens argumentverdi. Parameterfelt brukes til å angi kommandolinjeargumentet, og 3000 angis her som argumentverdi.

Følgende utdata vises hvis du kjører skriptet igjen etter at du har 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 basisadressen. Vertsnavnet og portnummeret er definert i begynnelsen av skriptet. PythonServer class har definert i skriptet for å vise HTML -filen i nettleseren når webserveren begynner å kjøre.

# Importer servermodulen

importhttp.server


# Angi vertsnavnet

VERT= 'lokal vert'

# Angi portnummeret

HAVN= 4000


# Definer klassen for å vise indekssiden til webserveren

klassePythonServer(http.server.SimpleHTTPRequestHandler):

defdo_GET(selv-):

hvis selv-.sti == '/':

selv-.sti = 'testHTML.html'

komme tilbakehttp.server.SimpleHTTPRequestHandler.do_GET(selv-)


# Erklær objektet for klassen

Internett server=http.server.HTTPS -server((VERT,HAVN),PythonServer)


# Skriv ut nettadressen til webserveren

skrive ut('Server startet http: //%s:%s'%(VERT,HAVN))


prøve:

# Kjør webserveren

Internett server.serve_forever()

unntatt Tastaturavbrudd:

# Stopp webserveren

Internett server.server_close()

skrive ut('Serveren er stoppet.')

Produksjon

Følgende utdata vises med utførelsen av skriptet ovenfor.

Den følgende siden vil vises i nettleseren hvis nettleserens grunnleggende URL for webserveren kjøres.

Konklusjon

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