Pagrindinė žiniatinklio serverio užduotis yra apdoroti kliento HTTP užklausas. Jis laukia HTTP užklausų, gautų iš konkretaus IP adreso ir prievado numerio, tvarko užklausą ir siunčia atgal kliento atsakymą. „Python“ naudoja Paprastas HTTPServeris modulį, kad akimirksniu sukurtumėte žiniatinklio serverį ir lengvai pateiktumėte failo turinį iš serverio. Jis taip pat gali būti naudojamas dalintis failais. Norėdami tai padaryti, turite įjungti šį modulį, nurodydami bendrinamų failų vietą. Šiame modulyje yra „Python“ vertėjas. Jums nereikia jo įdiegti. Kadangi šis modulis yra sujungtas su http.serveris modulis python3, todėl jūs turite paleisti http.serveris paleisti žiniatinklio serverį „python3“. Šiame vadove buvo parodyta, kaip žiniatinklio serveris gali būti naudojamas HTTP užklausoms tvarkyti ir dalintis failais.
Paleiskite žiniatinklio serverį iš terminalo
Vykdykite šią komandą, kad paleistumėte žiniatinklio serverį iš terminalo. Jei komandoje nenustatytas prievado numeris, pagal numatytuosius nustatymus žiniatinklio serveris pradės veikti nuo 8000 prievadų.
$ python3 -m http.serveris
Tinkamai paleidus žiniatinklio serverį bus rodoma ši išvestis. Norėdami sustabdyti serverį, paspauskite CTRL+C.
Vykdykite šią komandą, kad paleistumėte žiniatinklio serverį 8080 prievadu.
$ python3 -m http.serveris 8080
Toliau nurodyta išvestis bus rodoma, jei žiniatinklio serveris bus paleistas prie 8080 prievado.
Paleiskite žiniatinklio serverį naudodami „Python“ scenarijų
Norėdami sukurti aplanką pavadinimu, paleiskite šias komandas Žiniatinklis ir eikite į aplanką. Visi šio vadovo scenarijaus ir HTML failai bus sukurti šiame aplanke.
$ mkdir žiniatinklis$CDŽiniatinklis
Sukurkite HTML failą pavadinimu testHTML.html viduje Žiniatinklis aplanką su šiuo scenarijumi. Šis failas vėliau bus pateiktas iš žiniatinklio serverio.
testHTML.html
< html >< galva >
< titulas >
Išbandykite „Python“ žiniatinklio serverį
</ titulas >
</ galva >
< kūnas >
< centre >
< img src='logo.jpeg' viskas='Vaizdas nerastas'/>
< h2 stilius='spalva: žalia'>Sveikinu! Jūsų žiniatinklio serveris sėkmingai veikia.</ h2 >
< p >Aplankykite< į href=„www.linuxhint.com“>LinuxHint.com</ į >daugiau pamokų apie „Python“</ p >
</ centre >
</ kūnas >
</ html >
1 pavyzdys: paleiskite žiniatinklio serverį konkrečiu prievado numeriu
Sukurkite „Python“ failą naudodami šį scenarijų, kad paleistumėte žiniatinklio serverį 8008 prievadu. http.serveris modulis buvo importuotas paleisti žiniatinklio serverį, o „SocketServer“ modulis buvo importuotas apdoroti HTTP užklausą, gaunamą iš 8080 prievado. Objektas pavadintas Tvarkytojas buvo sukurtas HTTP užklausoms apdoroti. amžinai () funkcija paleidžiama paleisti žiniatinklio serverį. Prie scenarijaus nebuvo pridėta jokių nutraukimo sąlygų. Taigi, scenarijus sukels klaidą, kai vartotojas bandys sustabdyti serverį.
# Importuoti serverio modulįimportashttp.serveris
# Importuoti „SocketServer“ modulį
importaslizdo serveris
# Nustatykite prievado numerį
uostas= 8080
# Sukurkite HTTP užklausų tvarkymo objektą
Tvarkytojas=http.serveris.SimpleHTTPRequestHandler
# Vykdykite serverį amžinai, kad galėtumėte tvarkyti HTTP užklausas
sulizdo serveris.TCPServer(('',uostas),Tvarkytojas) kaiphttpd:
spausdinti(„Žiniatinklio serveris veikia adresu http: // localhost:%s“%prievadas)
httpd.tarnauti_visam laikui()
Išvestis
Įvykdžius aukščiau pateiktą scenarijų, bus rodoma ši išvestis.
Failų ir aplanko, esančių scenarijaus vietoje, sąrašas bus rodomas, jei iš naršyklės bus vykdomas šis URL.
Jei vartotojas paspaudžia CTRL+C iš terminalo arba paspaudžia sustabdymo mygtuką iš „PyCharm“ redaktoriaus, bus rodomas toks klaidos pranešimas. Ši problema išspręsta kitame šios pamokos pavyzdyje.
2 pavyzdys: paleiskite žiniatinklio serverį naudodami prievado numerį, apibrėžtą komandinėje eilutėje
Sukurkite „Python“ failą naudodami šį scenarijų, kad paleistumėte žiniatinklio serverį tam tikrame uoste, jei komandinės eilutės argumentas nurodo prievado numerį; priešingu atveju 5000 bus naudojamas kaip numatytasis prievadas. sys modulis buvo importuotas į scenarijų, kad būtų galima perskaityti komandinės eilutės argumentų reikšmes. pabandykite-išskyrus scenarijuje buvo pridėtas blokas, kad būtų pašalinta klaida, kai vartotojas bando sustabdyti serverį. Jei paleidus serverį atsiranda „KeyboardInterrupt“ išimtis, tada Uždaryti() bus iškviesta funkcija, skirta sustabdyti žiniatinklio serverį.
# Importuoti serverio modulįimportashttp.serveris
# Importuoti „SocketServer“ modulį
importaslizdo serveris
# Importuoti sys modulį
importas sys
bandyti:
# Nustatykite prievado numerį
jei sys.argv[1:]:
uostas= tarpt(sys.argv[1])
Kitas:
uostas= 5000
# Nustatykite IP adresą
serverio adresas= („127.0.0.1“,uostas)
# Sukurkite HTTP užklausų tvarkymo objektą
Tvarkytojas=http.serveris.SimpleHTTPRequestHandler
# Visada paleiskite žiniatinklio serverį, kad galėtumėte tvarkyti HTTP užklausas
sulizdo serveris.TCPServer(('',uostas),Tvarkytojas) kaiphttpd:
spausdinti(„Žiniatinklio serveris veikia adresu http: // localhost:%s“%prievadas)
httpd.tarnauti_visam laikui()
# Sustabdė serverį
išskyrus Klaviatūra:
httpd.serverio_uždaryti()
spausdinti('Serveris sustabdytas.')
Išvestis
Šis rezultatas bus rodomas įvykdžius aukščiau pateiktą scenarijų be komandinės eilutės argumento vertės.
Toliau pateikiamas rezultatas bus rodomas, jei paleisite HTML failą, sukurtą ankstesniame žingsnyje iš žiniatinklio serverio.
„PyCharm“ redaktoriaus meniu „Vykdyti“ atidarykite konfigūracijos dialogo langą, kad nustatytumėte komandinės eilutės argumento vertę. Laukas „Parameters“ naudojamas komandinės eilutės argumentui nustatyti, o 3000 čia yra kaip argumento vertė.
Jei iš naujo nustatysite argumento vertę, scenarijus bus rodomas toliau.
3 pavyzdys: paleiskite žiniatinklio serverį su HTML failu
Sukurkite „Python“ failą naudodami šį scenarijų, kad paleistumėte žiniatinklio serverį, apibrėždami pagrindinio URL HTML failą. Pagrindinio kompiuterio pavadinimas ir prievado numeris buvo nustatyti scenarijaus pradžioje. „PythonServer“ klasė scenarijuje nustatė, kad naršyklėje būtų rodomas HTML failas, kai žiniatinklio serveris pradeda veikti.
# Importuokite serverio modulįimportashttp.serveris
# Nustatykite pagrindinio kompiuterio pavadinimą
VADOVAS= 'vietinis šeimininkas'
# Nustatykite prievado numerį
Uostas= 4000
# Nustatykite klasę, kad būtų rodomas žiniatinklio serverio rodyklės puslapis
klasė„PythonServer“(http.serveris.SimpleHTTPRequestHandler):
defdo_GET(savarankiškai):
jei savarankiškai.kelias == '/':
savarankiškai.kelias = 'testHTML.html'
grįžtihttp.serveris.SimpleHTTPRequestHandler.do_GET(savarankiškai)
# Paskelbti klasės objektą
Tinklapio serveris=http.serveris.HTTPServer((VADOVAS,Uostas),„PythonServer“)
# Atspausdinkite žiniatinklio serverio URL
spausdinti(„Serveris paleistas http: //%s:%s“%(VADOVAS,Uostas))
bandyti:
# Paleiskite žiniatinklio serverį
Tinklapio serveris.tarnauti_visam laikui()
išskyrus Klaviatūra:
# Sustabdykite žiniatinklio serverį
Tinklapio serveris.serverio_uždaryti()
spausdinti('Serveris sustabdytas.')
Išvestis
Bus rodomas toks išvestis vykdant aukščiau pateiktą scenarijų.
Toliau pateiktas puslapis bus rodomas naršyklėje, jei vykdomas pagrindinis naršyklės žiniatinklio serverio URL.
Išvada
Skirtingi žiniatinklio serverių diegimo būdai naudojant http. serveris modulis parodė šioje pamokoje, kad padėtų „python“ vartotojams sukurti paprastą žiniatinklio serverį „Python“.