Kako koristiti Python SimpleHTTPServer

How Use Python Simplehttpserver



Glavni zadatak web poslužitelja je rukovanje HTTP zahtjevima klijenta. On čeka HTTP zahtjeve koji dolaze s određene IP adrese i broja porta, obrađuje zahtjev i šalje odgovor klijenta natrag. Python koristi Jednostavan HTTP poslužitelj modul za trenutno stvaranje web poslužitelja i jednostavno posluživanje sadržaja datoteke s poslužitelja. Također se može koristiti za dijeljenje datoteka. Da biste to učinili, morate omogućiti ovom modulu lokaciju datoteka za dijeljenje. Ovaj modul dolazi s tumačem Python. Ne morate ga instalirati. Budući da je ovaj modul spojen sa http.server modul u python3, pa morate pokrenuti http.server za pokretanje web poslužitelja u python3. Kako se web poslužitelj može koristiti za rukovanje HTTP zahtjevima i dijeljenje datoteka, prikazano je u ovom vodiču.

Pokrenite web poslužitelj s terminala

Pokrenite sljedeću naredbu za pokretanje web poslužitelja s terminala. Ako u naredbi nije definiran broj porta, web poslužitelj će prema zadanim postavkama početi na 8000 priključaka.







$ python3 -m http.poslužitelja



Sljedeći izlaz pojavit će se ako je web poslužitelj pravilno pokrenut. Pritisnite CTRL+C da biste zaustavili poslužitelj.




Pokrenite sljedeću naredbu za pokretanje web poslužitelja na portu 8080.





$ python3 -m http.poslužitelja 8080

Sljedeći izlaz će se pojaviti ako se web poslužitelj pokrene na portu 8080.



Pokrenite web poslužitelj pomoću Python skripte

Pokrenite sljedeće naredbe za stvaranje mape s imenom mreža i idite u mapu. Sve datoteke skripti i HTML datoteke ovog vodiča bit će kreirane unutar ove mape.

$ mkdir web

$CDmreža

Napravite HTML datoteku pod nazivom testHTML.html unutar mreža mapu sa sljedećom skriptom. Ova će se datoteka kasnije poslužiti s web poslužitelja.

testHTML.html

< html >

< glava >

< titula >

Testirajte Python web poslužitelj

</ titula >

</ glava >

< tijelo >

< centar >

< img src='logo.jpeg' sve='Slika nije pronađena'/>

< h2 stil='boja: zelena'>Čestitamo! Vaš web poslužitelj uspješno radi.</ h2 >

< str >Posjetiti< do href='www.linuxhint.com'>LinuxHint.com</ do >za više vodiča o Pythonu</ str >

</ centar >

</ tijelo >

</ html >

Primjer-1: Pokrenite web poslužitelj u određenom broju porta

Napravite python datoteku sa sljedećom skriptom za pokretanje web poslužitelja na 8008 portu. http.server modul je uvezen za pokretanje web poslužitelja, a SocketServer modul je uvezen za obradu HTTP zahtjeva koji dolazi s porta 8080. Objekt po imenu Rukovatelj je kreiran za obradu HTTP zahtjeva. zauvijek() funkcija se poziva za pokretanje web poslužitelja. U skriptu nije dodan nijedan uvjet prekida. Dakle, skripta će generirati pogrešku kada korisnik pokuša zaustaviti poslužitelj.

# Uvezi poslužiteljski modul

uvozhttp.poslužitelja

# Uvezi SocketServer modul

uvozsocketserver


# Postavite broj porta

luka= 8080

# Izradite objekt za rukovanje HTTP zahtjevima

Rukovatelj=http.poslužitelja.SimpleHTTPRequestHandler


# Pokrenite poslužitelj zauvijek za rukovanje HTTP zahtjevima

ssocketserver.TCPServer(('',luka),Rukovatelj) kaohttpd:

ispisati('Web poslužitelj radi na http: // localhost:%s'%luka)

httpd.posluži_zauvijek()

Izlaz

Sljedeći izlaz će se pojaviti nakon izvršavanja gornje skripte.


Popis datoteka i mapa mjesta skripte bit će prikazan ako se sljedeći URL izvrši iz preglednika.

http: // localhost: 8080

Ako korisnik pritisne CTRL+C s terminala ili pritisne gumb za zaustavljanje iz uređivača PyCharm, prikazat će se sljedeća poruka o pogrešci. Ovaj je problem riješen u sljedećem primjeru ovog vodiča.

Primjer 2: Pokrenite web poslužitelj s brojem porta definiranim naredbenim retkom

Izradite python datoteku sa sljedećom skriptom za pokretanje web poslužitelja na određenom portu ako argument naredbenog retka daje broj porta; u suprotnom će se 5000 koristiti kao zadani port. sys modul je uvezen u skriptu za čitanje vrijednosti argumenata naredbenog retka. pokušaj-osim blok je dodan u skriptu za rješavanje pogreške kada korisnik pokuša zaustaviti poslužitelj. Ako se nakon pokretanja poslužitelja pojavi iznimka KeyboardInterrupt, tada će se Zatvoriti() bit će pozvana funkcija za zaustavljanje web poslužitelja.

# Uvezi poslužiteljski modul

uvozhttp.poslužitelja

# Uvezi SocketServer modul

uvozsocketserver

# Uvezi sys modul

uvoz sys


probati:

# Postavite broj porta

ako sys.argv[1:]:

luka= int(sys.argv[1])

drugo:

luka= 5000

# Postavite IP adresu

adresa poslužitelja= ('127.0.0.1',luka)

# Izradite objekt za rukovanje HTTP zahtjevima

Rukovatelj=http.poslužitelja.SimpleHTTPRequestHandler


# Zauvijek pokrenite web poslužitelj za obradu HTTP zahtjeva

ssocketserver.TCPServer(('',luka),Rukovatelj) kaohttpd:

ispisati('Web poslužitelj radi na http: // localhost:%s'%luka)

httpd.posluži_zauvijek()

# Zaustavio poslužitelj

osim KeyboardInterrupt:

httpd.server_close()

ispisati('Poslužitelj je zaustavljen.')

Izlaz

Sljedeći izlaz će se pojaviti nakon izvršavanja gornje skripte bez vrijednosti argumenta naredbenog retka.

Sljedeći izlaz će se pojaviti ako pokrenete HTML datoteku koja je stvorena u prethodnom koraku s web poslužitelja.

Otvorite dijaloški okvir za konfiguraciju iz izbornika Run uređivača PyCharm da postavite vrijednost argumenta naredbenog retka. Polje parametara koristi se za postavljanje argumenta naredbenog retka, a 3000 je ovdje postavljeno kao vrijednost argumenta.

Sljedeći izlaz pojavit će se ako ponovno pokrenete skriptu nakon postavljanja vrijednosti argumenta.

Primjer 3: Pokrenite web poslužitelj s HTML datotekom

Izradite python datoteku sa sljedećom skriptom za pokretanje web poslužitelja definiranjem HTML datoteke za osnovni URL. Ime hosta i broj porta definirani su na početku skripte. PythonServer class je u skripti definirao prikaz HTML datoteke u pregledniku kada se web poslužitelj pokrene.

# Uvezite poslužiteljski modul

uvozhttp.poslužitelja


# Postavite naziv hosta

DOMAĆIN= 'localhost'

# Postavite broj porta

LUKA= 4000


# Definirajte klasu za prikaz indeksne stranice web poslužitelja

razredPythonServer(http.poslužitelja.SimpleHTTPRequestHandler):

defdo_GET(sebe):

ako sebe.staza == '/':

sebe.staza = 'testHTML.html'

povratakhttp.poslužitelja.SimpleHTTPRequestHandler.do_GET(sebe)


# Deklarirajte objekt klase

webServer=http.poslužitelja.HTTPS poslužitelj((DOMAĆIN,LUKA),PythonServer)


# Ispišite URL web poslužitelja

ispisati('Poslužitelj je pokrenut http: //%s:%s'%(DOMAĆIN,LUKA))


probati:

# Pokrenite web poslužitelj

webServer.posluži_zauvijek()

osim KeyboardInterrupt:

# Zaustavite web poslužitelj

webServer.server_close()

ispisati('Poslužitelj je zaustavljen.')

Izlaz

Sljedeći izlaz pojavit će se izvršavajući gornju skriptu.

Sljedeća stranica će se pojaviti u pregledniku ako se izvrši osnovni URL preglednika web poslužitelja.

Zaključak

Različiti načini implementacije web poslužitelja korištenjem http. poslužitelja Modul je pokazao u ovom vodiču kako bi pomogao korisnicima Pythona u stvaranju jednostavnog web poslužitelja u Pythonu.