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 moduluvozhttp.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.
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 moduluvozhttp.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 moduluvozhttp.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.