Jak používat Python SimpleHTTPServer

How Use Python Simplehttpserver



Hlavním úkolem webového serveru je zpracovávat požadavky HTTP od klienta. Čeká na požadavky HTTP pocházející z konkrétní IP adresy a čísla portu, vyřídí požadavek a odešle klientovu odpověď zpět. Python používá Server SimpleHTTPS modul pro okamžité vytvoření webového serveru a snadné poskytování obsahu souboru ze serveru. Lze jej také použít pro sdílení souborů. Za tímto účelem musíte povolit tento modul s umístěním sdílených souborů. Tento modul je dodáván s překladačem Pythonu. Není nutné jej instalovat. Protože je tento modul sloučen s http.server modul v pythonu3, takže musíte spustit http.server ke spuštění webového serveru v pythonu3. V tomto kurzu bylo ukázáno, jak lze webový server použít ke zpracování požadavků HTTP a sdílení souborů.

Spusťte webový server z terminálu

Spuštěním následujícího příkazu spustíte webový server z terminálu. Pokud v příkazu není definováno žádné číslo portu, webový server ve výchozím nastavení spustí na 8000 portech.







$ python3 -m http.server



Pokud je webový server správně spuštěn, zobrazí se následující výstup. Stisknutím klávesy CTRL+C zastavíte server.




Spuštěním následujícího příkazu spustíte webový server na portu 8080.





$ python3 -m http.server 8080

Pokud je webový server spuštěn na portu 8080, zobrazí se následující výstup.



Spusťte webový server pomocí skriptu Python

Spuštěním následujících příkazů vytvořte složku s názvem Web a přejděte do složky. V této složce budou vytvořeny všechny soubory skriptů a soubory HTML tohoto tutoriálu.

$ mkdir web

$CDWeb

Vytvořte soubor HTML s názvem testHTML.html uvnitř Web složku s následujícím skriptem. Tento soubor bude z webového serveru doručen později.

testHTML.html

< html >

< hlava >

< titul >

Otestujte webový server Python

</ titul >

</ hlava >

< tělo >

< centrum >

< obr src='logo.jpeg' všechno='Obrázek nenalezen'/>

< h2 styl='barva: zelená'>Gratulace Váš webový server běží úspěšně.</ h2 >

< p >Návštěva< na href='www.linuxhint.com'>LinuxHint.com</ na >pro další návody na Python</ p >

</ centrum >

</ tělo >

</ html >

Příklad 1: Spusťte webový server na konkrétním čísle portu

Vytvořte soubor pythonu s následujícím skriptem pro spuštění webového serveru na portu 8008. http.server modul byl importován pro spuštění webového serveru a Server Socket modul byl importován, aby zvládl požadavek HTTP přicházející z portu 8080. Objekt pojmenovaný Psovod byl vytvořen pro zpracování požadavků HTTP. navždy() funkce je volána ke spuštění webového serveru. Do skriptu nebyla přidána žádná podmínka ukončení. Skript tedy vygeneruje chybu, když se uživatel pokusí zastavit server.

# Importujte serverový modul

importhttp.server

# Importujte modul SocketServer

importzásuvkový server


# Nastavte číslo portu

přístav= 8080

# Vytvořte objekt pro zpracování požadavků HTTP

Psovod=http.server.SimpleHTTPRequestHandler


# Spusťte server navždy, abyste zvládli požadavky HTTP

szásuvkový server.Server TCPS(('',přístav),Psovod) tak jakohttpd:

tisk('Webový server běží na adrese http: // localhost:%s'%přístav)

httpd.sloužit_ navždy()

Výstup

Po spuštění výše uvedeného skriptu se zobrazí následující výstup.


Pokud je z prohlížeče spuštěna následující adresa URL, zobrazí se seznam souborů a složky umístění skriptu.

http: // localhost: 8080

Pokud uživatel stiskne z terminálu CTRL+C nebo stiskne tlačítko stop z editoru PyCharm, zobrazí se následující chybová zpráva. Tento problém byl vyřešen v dalším příkladu tohoto kurzu.

Příklad 2: Spusťte webový server s číslem portu definovaným pomocí příkazového řádku

Pokud argument příkazového řádku udává číslo portu, vytvořte soubor python s následujícím skriptem pro spuštění webového serveru na konkrétním portu; jinak bude jako výchozí port použito 5000. sys modul byl importován do skriptu pro čtení hodnot argumentů příkazového řádku. zkus-kromě do skriptu byl přidán blok, který zpracovává chybu, když se uživatel pokusí zastavit server. Pokud se po spuštění serveru objeví výjimka KeyboardInterrupt, pak zavřít() Funkce bude volána k zastavení webového serveru.

# Importujte serverový modul

importhttp.server

# Importujte modul SocketServer

importzásuvkový server

# Importujte modul sys

import sys


Snaž se:

# Nastavte číslo portu

-li sys.argv[1:]:

přístav= int(sys.argv[1])

jiný:

přístav= 5 000

# Nastavte IP adresu

adresa serveru= ('127.0.0.1',přístav)

# Vytvořte objekt pro zpracování požadavků HTTP

Psovod=http.server.SimpleHTTPRequestHandler


# Spusťte webový server navždy, abyste zvládli požadavky HTTP

szásuvkový server.Server TCPS(('',přístav),Psovod) tak jakohttpd:

tisk('Webový server běží na adrese http: // localhost:%s'%přístav)

httpd.sloužit_ navždy()

# Zastavil server

až na Klávesnice Přerušení:

httpd.server_close()

tisk('Server je zastaven.')

Výstup

Po spuštění výše uvedeného skriptu bez hodnoty argumentu příkazového řádku se zobrazí následující výstup.

Následující výstup se objeví, pokud spustíte soubor HTML vytvořený v předchozím kroku z webového serveru.

Chcete-li nastavit hodnotu argumentu příkazového řádku, otevřete konfigurační dialogové okno z nabídky Spustit v editoru PyCharm. Pole Parameters se používá k nastavení argumentu příkazového řádku a zde je jako hodnota argumentu nastaveno 3000.

Následující výstup se zobrazí, pokud skript znovu spustíte po nastavení hodnoty argumentu.

Příklad 3: Spusťte webový server se souborem HTML

Vytvořením souboru pythonu pomocí následujícího skriptu spustíte webový server definováním souboru HTML pro základní adresu URL. Název hostitele a číslo portu byly definovány na začátku skriptu. Server Python třída definovala ve skriptu zobrazení souboru HTML v prohlížeči při spuštění webového serveru.

# Importujte serverový modul

importhttp.server


# Nastavte název hostitele

HOSTITEL= 'localhost'

# Nastavte číslo portu

PŘÍSTAV= 4000


# Definujte třídu pro zobrazení indexové stránky webového serveru

třídaServer Python(http.server.SimpleHTTPRequestHandler):

defdo_GET():

-li .cesta == '/':

.cesta = 'testHTML.html'

vrátit sehttp.server.SimpleHTTPRequestHandler.do_GET()


# Deklarujte objekt třídy

webový server=http.server.HTTPS server((HOSTITEL,PŘÍSTAV),Server Python)


# Vytiskněte URL webového serveru

tisk('Server spuštěn http: //%s:%s'%(HOSTITEL,PŘÍSTAV))


Snaž se:

# Spusťte webový server

webový server.sloužit_ navždy()

až na Klávesnice Přerušení:

# Zastavte webový server

webový server.server_close()

tisk('Server je zastaven.')

Výstup

Zobrazí se následující výstup se spuštěním výše uvedeného skriptu.

Pokud se spustí základní adresa URL webového serveru, v prohlížeči se zobrazí následující stránka.

Závěr

Různé způsoby implementace webových serverů pomocí http. server modul ukázal v tomto tutoriálu, aby pomohl uživatelům pythonu vytvořit jednoduchý webový server v Pythonu.