Python

Hoe Python SimpleHTTPServer te gebruiken

Hoe Python SimpleHTTPServer te gebruiken

De hoofdtaak van de webserver is het afhandelen van de HTTP-verzoeken van de client. Het wacht op de HTTP-verzoeken die afkomstig zijn van het specifieke IP-adres en poortnummer, handelt het verzoek af en stuurt het antwoord van de klant terug. Python gebruikt de EenvoudigeHTTPServer module om direct en eenvoudig een webserver te maken om de inhoud van het bestand van de server te bedienen. Het kan ook worden gebruikt voor het delen van bestanden. Hiervoor moet je deze module inschakelen met de locatie van de deelbare bestanden. Deze module wordt geleverd met de Python-interpreter. Je hoeft het niet te installeren. Aangezien deze module is samengevoegd met de http.server module in python3, dus je moet uitvoeren http.server om de webserver in python3 uit te voeren. Hoe webserver kan worden gebruikt om HTTP-verzoeken af ​​​​te handelen en bestanden te delen, is in deze zelfstudie getoond.

Start de webserver vanaf de terminal

Voer de volgende opdracht uit om de webserver vanaf de terminal uit te voeren:. Als er geen poortnummer is gedefinieerd in de opdracht, start de webserver standaard op poort 8000.

$ python3 -m http.server

De volgende uitvoer zal verschijnen als de webserver correct is gestart:. CTRL+C wordt ingedrukt om de server te stoppen.


Voer de volgende opdracht uit om de webserver op 8080-poort te starten:.

$ python3 -m http.server 8080

De volgende uitvoer verschijnt als de webserver wordt gestart op de 8080-poort:.

Voer de webserver uit met behulp van het Python-script

Voer de volgende opdrachten uit om een ​​map met de naam te maken web en ga naar de map. Alle scriptbestanden en HTML-bestanden van deze tutorial worden in deze map gemaakt.

$ mkdir web
$ cd-web

Maak een HTML-bestand met de naam testHTML.html binnen in de web map met het volgende script. Dit bestand wordt later van de webserver bediend.

testHTML.html



<br>Test de Python-webserver<br>



Afbeelding niet gevonden

gefeliciteerd! Uw webserver werkt succesvol.


Bezoek LinuxHint.com voor meer tutorials over Python




Voorbeeld-1: Voer de webserver uit in het specifieke poortnummer

Maak een python-bestand met het volgende script om de webserver op 8008-poort te draaien:. http.server module is geïmporteerd om de webserver te laten draaien, en de SocketServer module is geïmporteerd om het HTTP-verzoek van de 8080-poort af te handelen. Een object met de naam Handler is gemaakt om de HTTP-verzoeken af ​​te handelen. voor altijd() functie wordt aangeroepen om de webserver uit te voeren. Er is geen beëindigingsvoorwaarde toegevoegd aan het script. Het script zal dus een foutmelding genereren wanneer de gebruiker de server probeert te stoppen.

# Servermodule importeren
importeer http.server
# SocketServer-module importeren
socketserver importeren
# Stel het poortnummer in
poort = 8080
# Maak een object voor het afhandelen van HTTP-verzoeken
Handler = http.server.SimpleHTTPRequestHandler
# Voer de server voor altijd uit om de HTTP-verzoeken af ​​te handelen
met socketserver.TCPServer(("", port), Handler) als httpd:
print("Web Server draait op http://localhost:%s" %port)
httpd.serve_forever()

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script:.


De lijst met bestanden en mappen van de scriptlocatie wordt weergegeven als de volgende URL vanuit de browser wordt uitgevoerd:.

http://localhost:8080

Als de gebruiker vanaf de terminal op CTRL + C drukt of op de stopknop van de PyCharm-editor drukt, wordt het volgende foutbericht weergegeven. Dit probleem is opgelost in het volgende voorbeeld van deze tutorial.

Voorbeeld-2: Voer de webserver uit met het poortnummer gedefinieerd door de opdrachtregel

Maak een python-bestand met het volgende script om een ​​webserver op de specifieke poort uit te voeren als het opdrachtregelargument het poortnummer geeft; anders wordt 5000 gebruikt als de standaardpoort. sys module is geïmporteerd in het script om de opdrachtregelargumentwaarden te lezen. probeer-behalve blok is toegevoegd in het script om de fout af te handelen wanneer de gebruiker de server probeert te stoppen.  Als de uitzondering KeyboardInterrupt verschijnt na het draaien van de server, dan is de dichtbij() functie wordt aangeroepen om de webserver te stoppen.

# Servermodule importeren
importeer http.server
# SocketServer-module importeren
socketserver importeren
# Systeemmodule importeren
import systeem
proberen:
# Stel het poortnummer in
als sys.argv[1:]:
poort = int(sys.argv[1])
anders:
poort = 5000
# Stel het IP-adres in
server_address = ('127.0.0.1', poort)
# Maak een object voor het afhandelen van HTTP-verzoeken
Handler = http.server.SimpleHTTPRequestHandler
# Voer de webserver voor altijd uit om de HTTP-verzoeken af ​​te handelen
met socketserver.TCPServer(("", port), Handler) als httpd:
print("Web Server draait op http://localhost:%s" %port)
httpd.serve_forever()
# De server gestopt
behalve KeyboardInterrupt:
httpd.server_close()
print("De server is gestopt.")

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script zonder opdrachtregelargumentwaarde:.

De volgende uitvoer zal verschijnen als het HTML-bestand wordt uitgevoerd dat in de vorige stap is gemaakt vanaf de webserver:.

Open het configuratiedialoogvenster vanuit het menu Uitvoeren van de PyCharm-editor om de waarde van het opdrachtregelargument in te stellen. Het veld Parameters wordt gebruikt om het opdrachtregelargument in te stellen, en 3000 wordt hier ingesteld als de argumentwaarde.

De volgende uitvoer verschijnt als u het script opnieuw uitvoert nadat u de argumentwaarde hebt ingesteld:.

Voorbeeld-3: Voer de webserver uit met het HTML-bestand

Maak een python-bestand met het volgende script om de webserver uit te voeren door het HTML-bestand voor de basis-URL te definiëren:. De hostnaam en het poortnummer zijn gedefinieerd aan het begin van het script. PythonServer class heeft gedefinieerd in het script om het HTML-bestand in de browser weer te geven wanneer de webserver begint te draaien.

# Importeer de servermodule
importeer http.server
# Stel de hostnaam in
HOST = "lokale host"
# Stel het poortnummer in
POORT = 4000
# Definieer klasse om de indexpagina van de webserver weer te geven
klasse PythonServer(http).server.SimpleHTTPRequestHandler):
def do_GET(zelf):
als zelf.pad == '/':
zelf.path = 'testHTML'.html'
terug http.server.SimpleHTTPRequestHandler.do_GET(zelf)
# Declareer object van de klasse
webserver = http.server.HTTPServer((HOST, POORT), PythonServer)
# Print de URL van de webserver
print("Server gestart http://%s:%s" % (HOST, PORT))
proberen:
# Voer de webserver uit
web Server.serve_forever()
behalve KeyboardInterrupt:
# Stop de webserver
web Server.server_close()
print("De server is gestopt.")

Uitgang:

De volgende uitvoer zal verschijnen bij het uitvoeren van het bovenstaande script:.

De volgende pagina verschijnt in de browser als de browser's basis-URL van de webserver wordt uitgevoerd:.

Conclusie

De verschillende manieren om webservers te implementeren met behulp van http. server module heeft in deze tutorial laten zien om python-gebruikers te helpen bij het maken van een eenvoudige webserver in Python.

Hoe FPS te verhogen in Linux?
FPS staat voor Beelden per seconde. De taak van FPS is om de framesnelheid te meten bij het afspelen van video's of speluitvoeringen. In eenvoudige wo...
Top Oculus App Lab-games
Als je eigenaar bent van een Oculus-headset, moet je op de hoogte zijn van sideloading. Sideloading is het proces van het installeren van niet-winkeli...
Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...