Python

Ako používať Python SimpleHTTPServer

Ako používať Python SimpleHTTPServer

Hlavnou úlohou webového servera je vybavovať HTTP požiadavky od klienta. Čaká na požiadavky HTTP prichádzajúce z konkrétnej adresy IP a čísla portu, vybavuje požiadavku a odošle odpoveď klienta späť. Python používa SimpleHTTPServer modul na okamžité vytvorenie webového servera a jednoduché poskytovanie obsahu súboru zo servera. Môže sa použiť aj na zdieľanie súborov. Za týmto účelom musíte povoliť tento modul s umiestnením zdieľateľných súborov. Tento modul je dodávaný s interpretom Pythonu. Nemusíte ho inštalovať. Pretože je tento modul zlúčený s http.server modul v python3, takže musíte bežať http.server spustiť webový server v python3. V tomto výučbe je ukázané, ako možno webový server použiť na spracovanie požiadaviek HTTP a zdieľanie súborov.

Spustite webový server z terminálu

Spustením nasledujúceho príkazu spustíte webový server z terminálu. Ak v príkaze nie je definované žiadne číslo portu, webový server sa štandardne spustí na 8 000 porte.

$ python3 -m http.server

Nasledujúci výstup sa zobrazí, ak je webový server správne spustený. Stlačením kombinácie klávesov CTRL + C zastavíte server.


Spustením nasledujúceho príkazu spustíte webový server na porte 8080.

$ python3 -m http.server 8080

Nasledujúci výstup sa objaví, ak je webový server spustený na porte 8080.

Spustite webový server pomocou skriptu Python

Spustením nasledujúcich príkazov vytvorte priečinok s názvom web a prejdite do priečinka. Všetky súbory skriptov a súbory HTML tohto tutoriálu sa vytvoria v tomto priečinku.

$ mkdir web
$ cd web

Vytvorte súbor HTML s názvom testHTML.html vnútri web priečinok s nasledujúcim skriptom. Tento súbor bude poskytnutý z webového servera neskôr.

testHTML.html



<br>Vyskúšajte webový server Python<br>



Obrázok sa nenašiel

Gratulujem! Váš webový server je úspešne spustený.


Navštívte LinuxHint.com pre viac tutoriálov o Pythone




Príklad-1: Spustite webový server na konkrétnom čísle portu

Vytvorte súbor python s nasledujúcim skriptom, aby ste spustili webový server na porte 8008. http.server bol importovaný modul na spustenie webového servera a SocketServer bol importovaný modul na spracovanie požiadavky HTTP prichádzajúcej z portu 8080. Objekt s názvom Psovod bol vytvorený na spracovanie požiadaviek HTTP. navždy () sa volá funkcia na spustenie webservera. Do skriptu nebola pridaná žiadna podmienka ukončenia. Skript teda vygeneruje chybu, keď sa používateľ pokúsi server zastaviť.

# Importovať modul servera
importovať http.server
# Importovať modul SocketServer
importovať socketový server
# Nastavte číslo portu
port = 8080
# Vytvoriť objekt na spracovanie požiadaviek HTTP
Handler = http.server.SimpleHTTPRequestHandler
# Spustiť server navždy na spracovanie požiadaviek HTTP
so zásuvkovým serverom.TCPServer (("", port), Handler) ako httpd:
print ("Webový server beží na porte http: // localhost:% s"%)
httpd.serve_forever ()

Výkon

Po vykonaní vyššie uvedeného skriptu sa zobrazí nasledujúci výstup.


Zoznam súborov a priečinkov umiestnenia skriptu sa zobrazí, ak sa z prehliadača spustí nasledujúca adresa URL.

http: // localhost: 8080

Ak používateľ stlačí CTRL + C z terminálu alebo stlačí tlačidlo stop z editora PyCharm, zobrazí sa nasledujúce chybové hlásenie. Tento problém sa vyriešil v ďalšom príklade tohto tutoriálu.

Príklad 2: Spustite webový server s číslom portu definovaným v príkazovom riadku

Vytvorte súbor python s nasledujúcim skriptom na spustenie webového servera na konkrétnom porte, ak argument príkazového riadka udáva číslo portu; inak sa použije 5000 ako predvolený port. sys modul bol importovaný do skriptu na načítanie hodnôt argumentov príkazového riadku. skús - okrem Do skriptu bol pridaný blok na spracovanie chyby, keď sa používateľ pokúsi server zastaviť.  Ak sa po spustení servera objaví výnimka KeyboardInterrupt, potom Zavrieť() bude zavolaná funkcia na zastavenie webservera.

# Import serverového modulu
importovať http.server
# Importovať modul SocketServer
importovať socketový server
# Importovať sys modul
import sys
skúste:
# Nastavte číslo portu
ak sys.argv [1:]:
port = int (sys.argv [1])
inak:
port = 5000
# Nastavte IP adresu
server_address = ('127.0.0.1 ', port)
# Vytvoriť objekt na spracovanie požiadaviek HTTP
Handler = http.server.SimpleHTTPRequestHandler
# Spustiť webový server navždy, aby mohol vybavovať požiadavky HTTP
so zásuvkovým serverom.TCPServer (("", port), Handler) ako httpd:
tlač ("Webový server je spustený na porte http: // localhost:% s"%)
httpd.serve_forever ()
# Server bol zastavený
okrem KeyboardInterrupt:
httpd.server_close ()
print ("Server je zastavený.„)

Výkon

Nasledujúci výstup sa objaví po vykonaní vyššie uvedeného skriptu bez hodnoty argumentu príkazového riadku.

Nasledujúci výstup sa zobrazí, ak spustíte súbor HTML, ktorý je vytvorený v predchádzajúcom kroku z webového servera.

Otvorte konfiguračné dialógové okno v ponuke Spustiť editora PyCharm a nastavte hodnotu argumentu príkazového riadku. Pole Parameters sa používa na nastavenie argumentu príkazového riadku a tu sa nastaví 3000 ako hodnota argumentu.

Nasledujúci výstup sa zobrazí, ak skript znovu spustíte po nastavení hodnoty argumentu.

Príklad 3: Spustite webový server so súborom HTML

Vytvorte súbor python s nasledujúcim skriptom na spustenie webového servera definovaním súboru HTML pre základnú adresu URL. Názov hostiteľa a číslo portu sú definované na začiatku skriptu. PythonServer trieda definovala v skripte zobrazenie súboru HTML v prehliadači, keď sa webový server spustí.

# Importujte modul servera
importovať http.server
# Nastavte názov hostiteľa
HOST = "localhost"
# Nastavte číslo portu
PORT = 4 000
# Definujte triedu na zobrazenie indexovej stránky webového servera
trieda PythonServer (http.server.SimpleHTTPRequestHandler):
def do_GET (vlastné):
ak ja.cesta == '/':
ja.cesta = 'testHTML.html '
vrátiť http.server.SimpleHTTPRequestHandler.do_GET (ja)
# Deklarujte objekt triedy
webový server = http.server.HTTPServer ((HOST, PORT), PythonServer)
# Vytlačte adresu URL webového servera
print ("Server spustený http: //% s:% s"% (HOST, PORT))
skúste:
# Spustite webový server
webový server.serve_forever ()
okrem KeyboardInterrupt:
# Zastavte webový server
webový server.server_close ()
print ("Server je zastavený.„)

Výkon

Po vykonaní vyššie uvedeného skriptu sa objaví nasledujúci výstup.

Nasledujúca stránka sa zobrazí v prehliadači, ak sa vykoná základná adresa URL webového servera.

Záver

Rôzne spôsoby implementácie webových serverov pomocou http. server Modul v tejto príručke ukázal, ako pomôcť používateľom pythonu vytvoriť jednoduchý webový server v Pythone.

Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...
Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...
Hry Užitočné nástroje pre hráčov systému Linux
Užitočné nástroje pre hráčov systému Linux
Ak radi hráte hry v systéme Linux, je pravdepodobné, že ste na vylepšenie herného zážitku použili aplikácie a pomôcky ako Wine, Lutris a OBS Studio. O...