„Python“

Kaip naudotis „Python SimpleHTTPServer“

Kaip naudotis „Python SimpleHTTPServer“

Pagrindinė serverio užduotis yra tvarkyti kliento HTTP užklausas. Jis laukia HTTP užklausų, gaunamų iš konkretaus IP adreso ir prievado numerio, tvarko užklausą ir siunčia kliento atsakymą atgal. „Python“ naudoja „SimpleHTTPServer“ modulis, skirtas greitai sukurti žiniatinklio serverį ir lengvai aptarnauti failo turinį iš serverio. Jis taip pat gali būti naudojamas dalijantis failais. Tam turite įgalinti šį modulį nurodydami bendrinamų failų vietą. Šis modulis pateikiamas su „Python“ vertėju. Jums nereikia jo įdiegti. Kadangi šis modulis sujungtas su http.serverio modulis python3, taigi jūs turite paleisti http.serverio paleisti žiniatinklio serverį python3. Kaip žiniatinklio serveris gali būti naudojamas tvarkant HTTP užklausas ir bendrinant failus, buvo parodyta šioje pamokoje.

Paleiskite žiniatinklio serverį iš terminalo

Norėdami paleisti žiniatinklio serverį iš terminalo, vykdykite šią komandą. Jei komandoje nėra apibrėžtas prievado numeris, pagal numatytuosius nustatymus tinklo serveris prasidės nuo 8000 prievado.

$ python3 -m http.serverio

Tinkamai paleidus interneto serverį, pasirodys ši išvestis. Norėdami sustabdyti serverį, paspaudžiamas CTRL + C.


Norėdami paleisti žiniatinklio serverį 8080 prievade, vykdykite šią komandą.

$ python3 -m http.serveris 8080

Ši išvestis bus rodoma, jei tinklo serveris paleidžiamas 8080 prievade.

Paleiskite žiniatinklio serverį naudodami „Python“ scenarijų

Norėdami sukurti aplanką pavadinimu, vykdykite šias komandas internetas ir eikite į aplanką. Visi šios mokymo programos scenarijų ir HTML failai bus sukurti šiame aplanke.

$ mkdir žiniatinklis
$ cd žiniatinklis

Sukurkite HTML failą pavadinimu testHTML.HTML viduje internetas aplankas su tokiu scenarijumi. Šis failas bus pateiktas iš žiniatinklio serverio vėliau.

testHTML.HTML



<br>Išbandykite „Python“ žiniatinklio serverį<br>



Vaizdas nerastas

Sveikiname! Jūsų žiniatinklio serveris sėkmingai veikia.


Apsilankykite „LinuxHint“.com daugiau „Python“ pamokų




1 pavyzdys: paleiskite žiniatinklio serverį nurodydami konkretų prievado numerį

Sukurkite python failą su šiuo scenarijumi, kad paleistumėte tinklo serverį prie 8008 prievado. http.serverio modulis buvo importuotas paleisti žiniatinklio serverį, o „SocketServer“ modulis buvo importuotas tvarkyti HTTP užklausą, gaunamą iš 8080 prievado. Objektas pavadintas Tvarkytojas buvo sukurtas tvarkyti HTTP užklausas. amžinai () funkcija iškviečiama paleisti žiniatinklio serverį. Į scenarijų nebuvo pridėta jokių nutraukimo sąlygų. Taigi, scenarijus sugeneruos klaidą, kai vartotojas bandys sustabdyti serverį.

# Importuoti serverio modulį
importuoti http.serverio
# Importuokite „SocketServer“ modulį
importuoti lizdų serverį
# Nustatykite prievado numerį
uostas = 8080
# Sukurkite objektą HTTP užklausoms tvarkyti
Handler = http.serverio.„SimpleHTTPRequestHandler“
# Paleiskite serverį visiems laikams, kad galėtumėte tvarkyti HTTP užklausas
su lizdo serveriu.TCPServeris (("", prievadas), tvarkytuvas) kaip httpd:
spausdinti ("žiniatinklio serveris veikia adresu http: // localhost:% s"% prievadas)
httpd.serve_forever ()

Rezultatas

Ši išvestis bus rodoma atlikus minėtą scenarijų.


Failų sąrašas ir scenarijaus vietos aplankas bus rodomas, jei šis URL bus vykdomas iš naršyklės.

http: // localhost: 8080

Jei vartotojas paspaudžia CTRL + C iš terminalo arba paspaudžia sustabdymo mygtuką iš „PyCharm“ redaktoriaus, bus rodomas toks klaidos pranešimas. Ši problema buvo išspręsta kitame šios mokymo programos pavyzdyje.

2 pavyzdys: paleiskite žiniatinklio serverį naudodami prievado numerį, apibrėžtą komandinėje eilutėje

Sukurkite python failą su šiuo scenarijumi, kad paleistumėte žiniatinklio serverį tam tikrame prievade, jei komandinės eilutės argumentas nurodo prievado numerį; priešingu atveju 5000 bus naudojamas kaip numatytasis prievadas. sys modulis importuotas į scenarijų, kad būtų galima nuskaityti komandinės eilutės argumentų reikšmes. pabandyti, išskyrus blokas buvo pridėtas prie scenarijaus, kad būtų pašalinta klaida, kai vartotojas bando sustabdyti serverį.  Jei paleidus serverį atsiranda išimtis „KeyboardInterrupt“, tada Uždaryti() funkcija bus iškviesta norint sustabdyti serverį.

# Importuoti serverio modulį
importuoti http.serverio
# Importuokite „SocketServer“ modulį
importuoti lizdų serverį
# Importuoti sys modulį
importuoti sistemas
bandyti:
# Nustatykite prievado numerį
jei sys.argv [1:]:
uostas = int (sys.argv [1])
Kitas:
uostas = 5000
# Nustatykite IP adresą
serverio adresas = ('127.0.0.1 ', uostas)
# Sukurkite objektą HTTP užklausoms tvarkyti
Handler = http.serverio.„SimpleHTTPRequestHandler“
# Amžinai paleiskite žiniatinklio serverį, kad galėtumėte tvarkyti HTTP užklausas
su lizdo serveriu.TCPServeris (("", prievadas), tvarkytuvas) kaip httpd:
spausdinti („Žiniatinklio serveris veikia adresu http: // localhost:% s“% prievadas)
httpd.serve_forever ()
# Sustabdė serverį
išskyrus „KeyboardInterrupt“:
httpd.server_close ()
spausdinti ("Serveris sustabdytas.")

Rezultatas

Ši išvestis bus rodoma atlikus minėtą scenarijų be komandinės eilutės argumento vertės.

Ši išvestis bus rodoma, jei paleisite HTML failą, kuris buvo sukurtas ankstesniame žingsnyje iš žiniatinklio serverio.

Norėdami nustatyti komandinės eilutės argumento vertę, atidarykite konfigūracijos dialogo langą iš „PyCharm“ redaktoriaus meniu Vykdyti. Parametrų laukas naudojamas komandinės eilutės argumentui nustatyti, o 3000 čia nurodoma kaip argumento reikšmė.

Ši išvestis bus rodoma, jei vėl nustatę argumento reikšmę paleisite scenarijų.

3 pavyzdys: paleiskite žiniatinklio serverį naudodami HTML failą

Sukurkite python failą su šiuo scenarijumi, kad paleistumėte žiniatinklio serverį, apibrėždami pagrindinio URL HTML failą. Pagrindinio kompiuterio vardas ir prievado numeris buvo apibrėžti scenarijaus pradžioje. „PythonServer“ klasė scenarijuje apibrėžė HTML failą rodyti naršyklėje, kai interneto serveris pradeda veikti.

# Importuokite serverio modulį
importuoti http.serverio
# Nustatykite pagrindinio kompiuterio pavadinimą
HOST = "vietinis šeimininkas"
# Nustatykite prievado numerį
Uostas = 4000
# Apibrėžkite klasę, kad būtų rodomas žiniatinklio serverio rodyklės puslapis
klasės „PythonServer“ (http.serverio.SimpleHTTPRequestHandler):
def do_GET (savarankiškai):
jei pats.kelias == '/':
savarankiškai.kelias = 'testHTML.HTML '
grąžinti http.serverio.„SimpleHTTPRequestHandler“.do_GET (savarankiškai)
# Paskelbkite klasės objektą
žiniatinklio serveris = http.serverio.„HTTPServer“ ((HOST, PORT), PythonServer)
# Atspausdinkite žiniatinklio serverio URL
spausdinti ("Serveris pradėjo http: //% s:% s"% (HOST, PORT))
bandyti:
# Paleiskite žiniatinklio serverį
Tinklapio serveris.serve_forever ()
išskyrus „KeyboardInterrupt“:
# Sustabdykite žiniatinklio serverį
Tinklapio serveris.server_close ()
spausdinti ("Serveris sustabdytas.")

Rezultatas

Šis išėjimas pasirodys vykdant aukščiau pateiktą scenarijų.

Šis puslapis bus rodomas naršyklėje, jei vykdomas naršyklės pagrindinis žiniatinklio serverio URL.

Išvada

Įvairūs žiniatinklio serverių diegimo būdai naudojant http. serverio modulis šioje pamokoje parodė, kad „Python“ vartotojai gali sukurti paprastą žiniatinklio serverį „Python“.

„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...
Pelės kairiuoju pelės mygtuku mygtukas neveikia „Windows 10“
Jei naudojate specialią pelę su savo nešiojamuoju kompiuteriu arba staliniu kompiuteriu, tačiau neveikia pelės kairysis mygtukas dėl tam tikrų priežas...
Žymeklis peršoka arba juda atsitiktinai, kai rašote „Windows 10“
Jei pastebite, kad pelės žymeklis peršoka arba juda pats, automatiškai, atsitiktinai, kai vedate „Windows“ nešiojamąjį kompiuterį ar kompiuterį, kai k...