Glavna naloga spletnega strežnika je obravnavanje zahtev HTTP odjemalca. Počaka na zahteve HTTP, ki prihajajo z določenega naslova IP in številke vrat, obravnava zahtevo in pošlje odziv odjemalca nazaj. Python uporablja Preprost HTTP strežnik modul za takojšnje ustvarjanje spletnega strežnika in preprosto serviranje vsebine datoteke s strežnika. Uporablja se lahko tudi za skupno rabo datotek. Za to morate omogočiti ta modul z lokacijo datotek za skupno rabo. Ta modul je opremljen s tolmačem Python. Vam ga ni treba namestiti. Ker je ta modul združen z http.server modul v python3, zato morate zagnati http.server za zagon spletnega strežnika v python3. Kako se lahko spletni strežnik uporablja za obdelavo zahtev HTTP in skupno rabo datotek, je bilo prikazano v tej vadnici.
Zaženite spletni strežnik s terminala
Zaženite naslednji ukaz za zagon spletnega strežnika s terminala. Če v ukazu ni določena številka vrat, se bo spletni strežnik privzeto zagnal na 8000 vratih.
$ python3 -m http.strežnika
Če se spletni strežnik pravilno zažene, se prikaže naslednji izhod. Pritisnite CTRL+C, da ustavite strežnik.
Zaženite naslednji ukaz, da zaženete spletni strežnik na vratih 8080.
$ python3 -m http.strežnika 8080
Če se spletni strežnik zažene na vratih 8080, se prikaže naslednji izhod.
Zaženite spletni strežnik s skriptom Python
Če želite ustvariti mapo z imenom, zaženite naslednje ukaze Splet in pojdite v mapo. Vse skriptne datoteke in datoteke HTML te vadnice bodo ustvarjene v tej mapi.
$ mkdir splet$CDSplet
Ustvarite datoteko HTML z imenom testHTML.html znotraj Splet mapo z naslednjim skriptom. Ta datoteka bo pozneje vročena s spletnega strežnika.
testHTML.html
< html >< glavo >
< naslov >
Preizkusite spletni strežnik Python
</ naslov >
</ glavo >
< telo >
< center >
< img src='logo.jpeg' vse='Slike ni mogoče najti'/>
< h2 slog='barva: zelena'>Čestitamo! Vaš spletni strežnik deluje uspešno.</ h2 >
< str >Obiščite< do href='www.linuxhint.com'>LinuxHint.com</ do >za več vaj o Pythonu</ str >
</ center >
</ telo >
</ html >
Primer-1: Zaženite spletni strežnik na določeni številki vrat
Ustvarite datoteko python z naslednjim skriptom, da zaženete spletni strežnik na vratih 8008. http.server modul je bil uvožen za zagon spletnega strežnika, in SocketServer Modul je bil uvožen za obravnavo zahteve HTTP, ki prihaja iz vrat 8080. Objekt z imenom Rukovalec je bil ustvarjen za obravnavo zahtev HTTP. za vedno () funkcija je poklicana za zagon spletnega strežnika. Skriptu ni bil dodan noben pogoj za prekinitev. Torej bo skript ustvaril napako, ko bo uporabnik poskušal ustaviti strežnik.
# Uvozi strežniški moduluvozhttp.strežnika
# Uvozi modul SocketServer
uvozstrežnik vtičnic
# Nastavite številko vrat
pristanišče= 8080
# Ustvarite predmet za obravnavanje zahtev HTTP
Rukovalec=http.strežnika.SimpleHTTPRequestHandler
# Za vedno zaženite strežnik za obravnavanje zahtev HTTP
zstrežnik vtičnic.TCPS strežnik(('',pristanišče),Rukovalec) kothttpd:
tiskanje('Spletni strežnik deluje na naslovu http: // localhost:%s'%port)
httpd.serve_forever()
Izhod
Po izvedbi zgornjega skripta se prikaže naslednji izhod.
Seznam datotek in map lokacije skripta bo prikazan, če se naslednji brskalnik izvede v naslednjem URL -ju.
Če uporabnik pritisne CTRL+C na terminalu ali pritisne gumb za zaustavitev v urejevalniku PyCharm, se prikaže naslednje sporočilo o napaki. Ta problem je rešen v naslednjem primeru te vadnice.
Primer 2: Zaženite spletni strežnik s številko vrat, določeno z ukazno vrstico
Ustvarite datoteko python z naslednjim skriptom za zagon spletnega strežnika na določenih vratih, če argument ukazne vrstice poda številko vrat; v nasprotnem primeru bo 5000 uporabljenih kot privzeta vrata. sys modul je bil uvožen v skript za branje vrednosti argumentov ukazne vrstice. poskusi-razen blok je bil v skript dodan za obravnavo napake, ko uporabnik poskuša ustaviti strežnik. Če se po zagonu strežnika pojavi izjema KeyboardInterrupt, se datoteka zapri () bo poklicana funkcija za zaustavitev spletnega strežnika.
# Uvozi strežniški moduluvozhttp.strežnika
# Uvozi modul SocketServer
uvozstrežnik vtičnic
# Uvozi sys modul
uvoz sys
poskusite:
# Nastavite številko vrat
če sys.argv[1:]:
pristanišče= int(sys.argv[1])
drugače:
pristanišče= 5000
# Nastavite naslov IP
naslov strežnika= ('127.0.0.1',pristanišče)
# Ustvarite predmet za obravnavanje zahtev HTTP
Rukovalec=http.strežnika.SimpleHTTPRequestHandler
# Za vedno zaženite spletni strežnik za obravnavanje zahtev HTTP
zstrežnik vtičnic.TCPS strežnik(('',pristanišče),Rukovalec) kothttpd:
tiskanje('Spletni strežnik deluje na naslovu http: // localhost:%s'%port)
httpd.serve_forever()
# Ustavil strežnik
razen KeyboardInterrupt:
httpd.server_close()
tiskanje('Strežnik je ustavljen.')
Izhod
Naslednji izhod bo prikazan po izvedbi zgornjega skripta brez vrednosti argumenta ukazne vrstice.
Naslednji izhod se prikaže, če datoteko HTML, ki je bila ustvarjena v prejšnjem koraku, zaženete s spletnega strežnika.
Odprite pogovorno okno za konfiguracijo v meniju Zaženi urejevalnika PyCharm, da nastavite vrednost argumenta ukazne vrstice. Polje parametrov se uporablja za nastavitev argumenta ukazne vrstice, 3000 pa je tukaj nastavljeno kot vrednost argumenta.
Če znova zaženete skript po nastavitvi vrednosti argumenta, se prikaže naslednji izhod.
Primer 3: Zaženite spletni strežnik z datoteko HTML
Ustvarite datoteko python z naslednjim skriptom za zagon spletnega strežnika tako, da definirate datoteko HTML za osnovni URL. Ime gostitelja in številka vrat sta definirana na začetku skripta. PythonServer class je v skriptu določil prikaz datoteke HTML v brskalniku, ko se spletni strežnik zažene.
# Uvozi strežniški moduluvozhttp.strežnika
# Nastavite ime gostitelja
VODITELJ= 'lokalni gostitelj'
# Nastavite številko vrat
PORT= 4000
# Določite razred za prikaz indeksne strani spletnega strežnika
razredPythonServer(http.strežnika.SimpleHTTPRequestHandler):
defdo_GET(sebe):
če sebe.pot == '/':
sebe.pot = 'testHTML.html'
vrnitevhttp.strežnika.SimpleHTTPRequestHandler.do_GET(sebe)
# Razglasite predmet razreda
spletni strežnik=http.strežnika.HTTPS strežnik((VODITELJ,PORT),PythonServer)
# Natisnite URL spletnega strežnika
tiskanje('Strežnik se je zagnal http: //%s:%s'%(VODITELJ,PORT))
poskusite:
# Zaženite spletni strežnik
spletni strežnik.serve_forever()
razen KeyboardInterrupt:
# Ustavite spletni strežnik
spletni strežnik.server_close()
tiskanje('Strežnik je ustavljen.')
Izhod
Za izvajanje zgornjega skripta se prikaže naslednji izhod.
Naslednja stran se bo prikazala v brskalniku, če se izvede osnovni URL brskalnika spletnega strežnika.
Zaključek
Različni načini izvajanja spletnih strežnikov z uporabo http. strežnika Modul je v tej vadnici pokazal uporabnikom pythona pri ustvarjanju preprostega spletnega strežnika v Pythonu.