Piton

Kako koristiti Python SimpleHTTPServer

Kako koristiti Python SimpleHTTPServer

Glavni zadatak web poslužitelja je obrada HTTP zahtjeva od klijenta. Čeka HTTP zahtjeve koji dolaze s određene IP adrese i broja porta, obrađuje zahtjev i šalje odgovor klijenta natrag. Python koristi SimpleHTTPServer modul za trenutno stvaranje web poslužitelja i lako posluživanje sadržaja datoteke s poslužitelja. Može se koristiti i za dijeljenje datoteka. Da biste to učinili, morate omogućiti ovaj modul s mjestom datoteka koje se mogu dijeliti. Ovaj modul dolazi s tumačem Python. Ne trebate ga instalirati. Budući da je ovaj modul spojen sa http.poslužitelju modul u python3, pa morate pokrenuti http.poslužitelju za pokretanje web poslužitelja u python3. Kako se web poslužitelj može koristiti za obradu HTTP zahtjeva 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 nijedan broj porta, web poslužitelj će prema zadanim postavkama započeti s portom 8000.

$ python3 -m http.poslužitelju

Sljedeći će se izlaz pojaviti ako se web poslužitelj pravilno pokrene. Pritisnite CTRL + C da zaustavite poslužitelj.


Pokrenite sljedeću naredbu za pokretanje web poslužitelja na priključku 8080.

$ python3 -m http.poslužitelj 8080

Sljedeći će se izlaz pojaviti ako je web poslužitelj pokrenut na priključku 8080.

Pokrenite web poslužitelj pomoću Python skripte

Izvedite 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 stvorene u ovoj mapi.

$ mkdir web
$ cd web

Stvorite HTML datoteku s imenom testHTML.html unutar mreža mapa sa sljedećom skriptom. Ova će se datoteka kasnije poslužiti s web poslužitelja.

testHTML.html



<br>Testirajte Python web poslužitelj<br>



Slika nije pronađena

Svaka čast! Vaš web poslužitelj uspješno radi.


Posjetiti LinuxHint.com za više vodiča o Pythonu




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

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

# Uvoz modula poslužitelja
uvoz http.poslužitelju
# Uvoz modula SocketServer
uvoz socketserver
# Postavite broj porta
luka = ​​8080
# Stvori objekt za rukovanje HTTP zahtjevima
Rukovatelj = http.poslužitelju.SimpleHTTPRequestHandler
# Pokrenite poslužitelj zauvijek za obradu HTTP zahtjeva
s poslužiteljem socket.TCPServer (("", port), Handler) kao httpd:
ispis ("Web poslužitelj pokrenut je na http: // localhost:% s"% port)
httpd.serve_forever ()

Izlaz

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


Popis datoteka i mapa na mjestu skripte prikazat će se 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

Stvorite python datoteku sa sljedećom skriptom za pokretanje web poslužitelja na određenoj luci ako argument naredbenog retka daje broj porta; u protivnom, 5000 će se 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 obradu pogreške kada korisnik pokuša zaustaviti poslužitelj.  Ako se nakon pokretanja poslužitelja pojavi iznimka KeyboardInterrupt, tada se Zatvoriti() Pozvat će se funkcija za zaustavljanje web poslužitelja.

# Uvoz modula poslužitelja
uvoz http.poslužitelju
# Uvoz modula SocketServer
uvoz socketserver
# Uvoz sys modula
import sys
probati:
# Postavite broj porta
ako sys.argv [1:]:
port = int (sys.argv [1])
drugo:
luka = ​​5000
# Postavite IP adresu
server_address = ('127.0.0.1 ', priključak)
# Stvori objekt za rukovanje HTTP zahtjevima
Rukovatelj = http.poslužitelju.SimpleHTTPRequestHandler
# Pokrenite web poslužitelj zauvijek za obradu HTTP zahtjeva
s poslužiteljem socket.TCPServer (("", port), Handler) kao httpd:
ispis ("Web poslužitelj pokrenut je na http: // localhost:% s"% port)
httpd.serve_forever ()
# Zaustavio je poslužitelj
osim KeyboardInterrupt:
httpd.server_close ()
print ("Poslužitelj je zaustavljen.")

Izlaz

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

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

Otvorite dijaloški okvir za konfiguraciju s izbornika Pokreni u uređivaču PyCharm da biste postavili vrijednost argumenta naredbenog retka. Polje parametara koristi se za postavljanje argumenta naredbenog retka, a 3000 je ovdje postavljeno kao vrijednost argumenta.

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

Primjer-3: Pokrenite web poslužitelj s HTML datotekom

Stvorite 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 klasa je u skripti definirala prikaz HTML datoteke u pregledniku kada web poslužitelj počne raditi.

# Uvezite poslužiteljski modul
uvoz http.poslužitelju
# Postavite ime hosta
HOST = "localhost"
# Postavite broj porta
LUKA = 4000
# Definirajte klasu za prikaz indeksne stranice web poslužitelja
klasa PythonServer (http.poslužitelju.SimpleHTTPRequestHandler):
def do_GET (samo):
ako ja.put == '/':
sebe.put = 'testHTML.html '
vratiti http.poslužitelju.SimpleHTTPRequestHandler.do_GET (samo)
# Deklarirajte objekt klase
webServer = http.poslužitelju.HTTPServer ((HOST, PORT), PythonServer)
# Ispišite URL web poslužitelja
print ("Poslužitelj pokrenut http: //% s:% s"% (HOST, PORT))
probati:
# Pokrenite web poslužitelj
webServer.serve_forever ()
osim KeyboardInterrupt:
# Zaustavite web poslužitelj
webServer.server_close ()
print ("Poslužitelj je zaustavljen.")

Izlaz

Pojavit će se sljedeći izlaz koji izvršava gornju skriptu.

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

Zaključak

Različiti načini implementacije web poslužitelja pomoću http. poslužitelju modul je prikazan u ovom vodiču kako bi pomogao korisnicima pythona stvoriti jednostavan web poslužitelj u Pythonu.

Top 5 ergonomskih proizvoda za računalni miš za Linux
Uzrokuje li dugotrajno korištenje računala bolove u zapešću ili prstima? Patite li od ukočenih zglobova i stalno se morate rukovati? Osjećate li goruć...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...