Kako uporabljati strežnik Python SimpleHTTPServer

How Use Python Simplehttpserver



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 modul

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

http: // localhost: 8080

Č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 modul

uvozhttp.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 modul

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