Ako používať Python SimpleHTTPServer

How Use Python Simplehttpserver



Hlavnou úlohou webového servera je spracovať požiadavky HTTP od klienta. Čaká na požiadavky HTTP prichádzajúce z konkrétnej adresy IP a čísla portu, spracuje žiadosť a odošle odpoveď klienta. Python používa príponu Server SimpleHTTPS modul na okamžité vytvorenie webového servera a jednoduché zobrazenie obsahu súboru zo servera. Môže byť tiež použitý na zdieľanie súborov. Na tento účel musíte povoliť tento modul s umiestnením súborov na zdieľanie. Tento modul je dodávaný s interpretom Pythonu. Nie je potrebné ho inštalovať. Pretože je tento modul zlúčený s http.server modul v python3, takže musíte spustiť http.server na spustenie webového servera v python3. V tomto návode bolo ukázané, ako je možné 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 predvolene spustí na 8 000 portoch.







$ python3 -m http.server



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




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 budú vytvorené v tomto priečinku.

$ mkdir web

$CDWeb

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

testHTML.html

< html >

< hlava >

< titul >

Otestujte webový server Python

</ titul >

</ hlava >

< telo >

< centrum >

< obr src='logo.jpeg' všetko=„Obrázok sa nenašiel“/>

< h2 štýl='farba: zelená'>Gratulujem! Váš webový server beží úspešne.</ h2 >

< p >Navštívte< do href=„www.linuxhint.com“>LinuxHint.com</ do >ďalšie návody na Python</ p >

</ centrum >

</ telo >

</ html >

Príklad 1: Spustite webový server pod konkrétnym číslom portu

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

# Importujte serverový modul

importhttp.server

# Importujte modul SocketServer

importzásuvkový server


# Nastavte číslo portu

prístav= 8080

# Vytvorte objekt na spracovanie požiadaviek HTTP

Psovod=http.server.SimpleHTTPRequestHandler


# Spustite server navždy, aby ste zvládli požiadavky HTTP

szásuvkový server.Server TCPS(('',prístav),Psovod) akohttpd:

vytlačiť('Webový server beží na adrese http: // localhost:%s'%port)

httpd.slúžiť_ navždy()

Výkon

Po spustení 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 bol vyriešený v nasledujúcom príklade tohto tutoriálu.

Príklad 2: Spustite webový server s číslom portu definovaným príkazovým riadkom

Vytvorte súbor python s nasledujúcim skriptom na spustenie webového servera na konkrétnom porte, ak argument príkazového riadka uvádza číslo portu; v opačnom prípade sa ako predvolený port použije 5000. sys modul bol importovaný do skriptu na čítanie hodnôt argumentov príkazového riadka. skús-okrem Do skriptu bol pridaný blok na zvládnutie chyby, keď sa používateľ pokúša zastaviť server. Ak sa po spustení servera objaví výnimka KeyboardInterrupt, potom Zavrieť() Na zastavenie webového servera sa zavolá funkcia.

# Importujte serverový modul

importhttp.server

# Importujte modul SocketServer

importzásuvkový server

# Importujte modul sys

import sys


skúsiť:

# Nastavte číslo portu

keby sys.argv[1:]:

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

inak:

prístav= 5 000

# Nastavte IP adresu

adresa servera= („127.0.0.1“,prístav)

# Vytvorte objekt na spracovanie požiadaviek HTTP

Psovod=http.server.SimpleHTTPRequestHandler


# Spustite webový server navždy, aby ste zvládli požiadavky HTTP

szásuvkový server.Server TCPS(('',prístav),Psovod) akohttpd:

vytlačiť('Webový server beží na adrese http: // localhost:%s'%port)

httpd.slúžiť_ navždy()

# Server bol zastavený

okrem Klávesnica Prerušenie:

httpd.server_close()

vytlačiť('Server je zastavený.')

Výkon

Po spustení vyššie uvedeného skriptu bez hodnoty argumentu príkazového riadka sa zobrazí nasledujúci výstup.

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

Ak chcete nastaviť hodnotu argumentu príkazového riadka, otvorte konfiguračné dialógové okno z ponuky Spustiť v editore PyCharm. Pole Parameters sa používa na nastavenie argumentu príkazového riadka a ako hodnota argumentu sa tu nastavuje hodnota 3000.

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

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

Vytvorte súbor pythonu pomocou nasledujúceho skriptu 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. Server Python class definovala v skripte zobrazenie súboru HTML v prehliadači pri spustení webového servera.

# Importujte serverový modul

importhttp.server


# Nastavte názov hostiteľa

HOSTITEĽ= 'localhost'

# Nastavte číslo portu

PORT= 4000


# Definovaním triedy zobrazíte indexovú stránku webového servera

triedaServer Python(http.server.SimpleHTTPRequestHandler):

defdo_GET(seba):

keby seba.cesta == '/':

seba.cesta = 'testHTML.html'

vrátiť sahttp.server.SimpleHTTPRequestHandler.do_GET(seba)


# Vyhláste predmet v triede

webový server=http.server.HTTPS server((HOSTITEĽ,PORT),Server Python)


# Vytlačte adresu URL webového servera

vytlačiť('Server spustený http: //%s:%s'%(HOSTITEĽ,PORT))


skúsiť:

# Spustite webový server

webový server.slúžiť_ navždy()

okrem Klávesnica Prerušenie:

# Zastavte webový server

webový server.server_close()

vytlačiť('Server je zastavený.')

Výkon

Zobrazí sa nasledujúci výstup, ktorý spustí vyššie uvedený skript.

Po spustení základnej adresy URL webového servera v prehliadači sa v prehliadači zobrazí nasledujúca stránka.

Záver

Rôzne spôsoby implementácie webových serverov pomocou http. server modul ukázal v tomto návode, že pomáha používateľom pythonu vytvoriť jednoduchý webový server v Pythone.