Python

Sådan bruges Python SimpleHTTPServer

Sådan bruges Python SimpleHTTPServer

Webserverens hovedopgave er at håndtere HTTP-anmodninger fra klienten. Den venter på HTTP-anmodninger, der kommer fra den bestemte IP-adresse og portnummer, håndterer anmodningen og sender klientens svar tilbage. Python bruger SimpleHTTPServer modul til at oprette en webserver med det samme og nemt servere indholdet af filen 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-tolk. Du behøver ikke at installere det. Da dette modul er flettet 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-anmodning og dele filer, er 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 et portnummer i kommandoen, starter webserveren som standard ved 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-porten.

$ python3 -m http.server 8080

Følgende output vises, hvis webserveren startes i 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 i denne mappe.

$ mkdir web
$ cd web

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

testHTML.html



<br>Test Python-webserveren<br>



Billedet blev ikke fundet

Tillykke! Din webserver kører med succes.


Besøg LinuxHint.com for flere tutorials om Python




Eksempel 1: Kør webserveren i det specifikke portnummer

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

# Importér servermodul
importer http.server
# Importer SocketServer-modul
importer socketserver
# Indstil portnummeret
port = 8080
# Opret objekt til håndtering af HTTP-anmodninger
Handler = http.server.SimpleHTTPRequestHandler
# Kør serveren for evigt for at håndtere HTTP-anmodninger
med socketserver.TCPServer (("", port), Handler) som httpd:
udskriv ("Webserver kører på http: // localhost:% s"% port)
httpd.serve_forever ()

Produktion

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


Listen over filer og mapper på scriptplaceringen vises, hvis følgende URL udføres fra browseren.

http: // localhost: 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 i den bestemte port, hvis kommandolinjeargumentet giver portnummeret; Ellers vil 5000 blive brugt som standardport. sys modulet er blevet importeret i scriptet for at læse kommandolinjens argumentværdier. prøv undtagen blok er tilføjet i scriptet for at håndtere fejlen, når brugeren forsøger at stoppe serveren.  Hvis KeyboardInterrupt-undtagelsen vises efter kørsel af serveren, så tæt() funktion kaldes for at stoppe webserveren.

# Importér servermodul
importer http.server
# Importer SocketServer-modul
importer socketserver
# Importer sys-modul
importer sys
prøve:
# Indstil portnummeret
hvis sys.argv [1:]:
port = int (sys.argv [1])
andet:
port = 5000
# Indstil IP-adressen
server_adresse = ('127.0.0.1 ', port)
# Opret objekt til håndtering af HTTP-anmodninger
Handler = http.server.SimpleHTTPRequestHandler
# Kør webserveren for evigt for at håndtere HTTP-anmodninger
med socketserver.TCPServer (("", port), Handler) som httpd:
udskriv ("Webserver kører på http: // localhost:% s"% port)
httpd.serve_forever ()
# Stoppede serveren
undtagen KeyboardInterrupt:
httpd.server_close ()
udskriv ("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 er oprettet i det forrige trin fra webserveren.

Åbn konfigurationsdialogboksen fra menuen Kør i PyCharm-editoren for at indstille argumentværdien for kommandolinjen. Parameterfelt bruges til at indstille kommandolinjeargumentet, og 3000 indstilles 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 til basis-URL. Værtsnavnet og portnummeret er defineret i begyndelsen af ​​scriptet. PythonServer klasse har defineret i scriptet at vise HTML-filen i browseren, når webserveren begynder at køre.

# Importer servermodulet
importer http.server
# Indstil værtsnavnet
HOST = "localhost"
# Indstil portnummeret
PORT = 4000
# Definer klasse for at få vist webserverens indeksside
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)
# Udskriv web-serverens URL
udskriv ("Server startet http: //% s:% s"% (HOST, PORT))
prøve:
# Kør webserveren
Webserver.serve_forever ()
undtagen KeyboardInterrupt:
# Stop webserveren
Webserver.server_close ()
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 til webserveren udføres.

Konklusion

De forskellige måder at implementere webservere ved hjælp af http. server modulet har vist i denne vejledning for at hjælpe pythonbrugere med at oprette en simpel webserver i Python.

Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...
Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....