A Python SimpleHTTPServer használata

How Use Python Simplehttpserver



A webszerver fő feladata az ügyfél HTTP -kéréseinek kezelése. Várja az adott IP -címről és portszámról érkező HTTP -kéréseket, kezeli a kérést, és visszaküldi az ügyfél válaszát. A Python a EgyszerűHTTPServer modul segítségével azonnal létrehozhat webszervert, és egyszerűen kiszolgálhatja a fájl tartalmát a szerverről. Fájlmegosztásra is használható. Ehhez engedélyeznie kell ezt a modult a megosztható fájlok helyével. Ez a modul a Python tolmácsot tartalmazza. Nem kell telepítenie. Mivel ez a modul egyesült a http.szerver modul a python3 -ban, ezért futtatnia kell http.szerver hogy futtassa a webszervert python3 -ban. Ebben az oktatóanyagban bemutattuk, hogyan használható a webszerver a HTTP -kérések kezelésére és a fájlok megosztására.

Futtassa a webszervert a terminálról

Futtassa a következő parancsot a webszerver terminálról történő futtatásához. Ha a parancsban nincs megadva portszám, a webszerver alapértelmezés szerint 8000 porton indul.







$ python3 -m http.szerver



A következő kimenet jelenik meg, ha a webszerver megfelelően indul. A CTRL+C billentyűkombináció leállítja a szervert.




Futtassa a következő parancsot a webszerver 8080 -as porton történő elindításához.





$ python3 -m http.szerver 8080

A következő kimenet jelenik meg, ha a webszervert a 8080 -as porton indítja.



Futtassa a webszervert Python parancsfájl használatával

Futtassa a következő parancsokat egy elnevezett mappa létrehozásához Web és lépjen a mappába. Az oktatóanyag összes parancsfájl- és HTML -fájlja ebben a mappában jön létre.

$ mkdir web

$CDWeb

Hozzon létre egy HTML fájlt testHTML.html benne Web mappát a következő szkripttel. Ezt a fájlt később a webszerver szolgáltatja.

testHTML.html

< html >

< fej >

< cím >

Tesztelje a Python webszervert

</ cím >

</ fej >

< test >

< központ >

< img src='logo.jpeg' minden='A kép nem található'/>

< h2 stílus='színe: zöld'>Gratulálok! Webszervere sikeresen fut.</ h2 >

< o >Látogatás< nak nek href='www.linuxhint.com'>LinuxHint.com</ nak nek >további oktatóanyagokért a Pythonról</ o >

</ központ >

</ test >

</ html >

1. példa: Futtassa a webszervert az adott portszámban

Hozzon létre egy python fájlt a következő szkripttel a webszerver 8008 porton történő futtatásához. http.szerver modult importálták a webszerver futtatására, és a SocketServer modul importálva lett a 8080 -as portról érkező HTTP -kérések kezelésére. Nevű objektum Kezelő jött létre a HTTP -kérések kezelésére. örökké() függvényt hívják meg a webszerver futtatásához. A szkripthez nem adtak hozzá felmondási feltételt. Tehát a szkript hibát generál, amikor a felhasználó megpróbálja leállítani a szervert.

# Kiszolgáló modul importálása

importhttp.szerver

# SocketServer modul importálása

importaljzatszerver


# Állítsa be a port számát

kikötő= 8080

# Objektum létrehozása a HTTP -kérések kezelésére

Kezelő=http.szerver.EgyszerűHTTPRequestHandler


# Futtassa a szervert örökké a HTTP -kérések kezeléséhez

val velaljzatszerver.TCPServer(('',kikötő),Kezelő) minthttpd:

nyomtatás('A webszerver a http: // localhost:%s címen fut'%kikötő)

httpd.serve_forever()

Kimenet

A fenti kimenet a fenti szkript végrehajtása után jelenik meg.


A parancsfájl -hely fájljainak és mappáinak listája megjelenik, ha a következő URL -címet a böngésző futtatja.

http: // localhost: 8080

Ha a felhasználó megnyomja a CTRL+C billentyűt a terminálról, vagy megnyomja a stop gombot a PyCharm szerkesztőből, a következő hibaüzenet jelenik meg. Ez a probléma megoldódott az oktatóanyag következő példájában.

2. példa: Futtassa a webszervert a parancssor által meghatározott portszámmal

Ha a parancssori argumentum megadja a port számát, hozzon létre egy python-fájlt a következő szkripttel a webkiszolgáló futtatásához az adott porton; különben 5000 -et használnak alapértelmezett portként. sys modult importálták a parancsfájlba a parancssori argumentumértékek olvasásához. próbáld-kivéve blokk került hozzáadásra a szkriptben, hogy kezelje a hibát, amikor a felhasználó megpróbálja leállítani a szervert. Ha a KeyboardInterrupt kivétel megjelenik a szerver futtatása után, akkor a Bezárás() függvény hívja le a webszervert.

# Kiszolgáló modul importálása

importhttp.szerver

# SocketServer modul importálása

importaljzatszerver

# Importálja a sys modult

import sys


próbáld ki:

# Állítsa be a port számát

ha sys.argv[1:]:

kikötő= int(sys.argv[1])

más:

kikötő= 5000

# Állítsa be az IP -címet

szerver címe= ('127.0.0.1',kikötő)

# Objektum létrehozása a HTTP -kérések kezelésére

Kezelő=http.szerver.EgyszerűHTTPRequestHandler


# Futtassa örökre a webszervert a HTTP -kérések kezelésére

val velaljzatszerver.TCPServer(('',kikötő),Kezelő) minthttpd:

nyomtatás('A webszerver a http: // localhost:%s címen fut'%kikötő)

httpd.serve_forever()

# Leállította a szervert

kivéve Billentyűzet megszakítás:

httpd.server_close()

nyomtatás('A szerver leállt.')

Kimenet

A következő kimenet jelenik meg a fenti szkript végrehajtása után, parancssori argumentum érték nélkül.

A következő kimenet jelenik meg, ha futtatja az előző lépésben a webszerverről létrehozott HTML fájlt.

Nyissa meg a konfigurációs párbeszédpanelt a PyCharm szerkesztő Futtatás menüjében a parancssori argumentum értékének beállításához. A Parameters mező a parancssori argumentum beállítására szolgál, a 3000 pedig itt állítható be az argumentum értékeként.

A következő kimenet jelenik meg, ha az argumentumérték beállítása után újra futtatja a szkriptet.

3. példa: Futtassa a webszervert a HTML-fájllal

Hozzon létre egy python fájlt a következő szkripttel a webszerver futtatásához az alap URL -cím HTML -fájljának megadásával. A gazdagép nevét és a port számát a szkript elején határozták meg. PythonServer osztály a szkriptben úgy határozta meg, hogy megjelenítse a HTML -fájlt a böngészőben, amikor a webszerver futni kezd.

# Importálja a szerver modult

importhttp.szerver


# Állítsa be a gazdagép nevét

HÁZIGAZDA= 'helyi kiszolgáló'

# Állítsa be a port számát

KIKÖTŐ= 4000


# Adja meg az osztályt a webszerver indexoldalának megjelenítéséhez

osztályPythonServer(http.szerver.EgyszerűHTTPRequestHandler):

defdo_GET(maga):

ha maga.pálya == '/':

maga.pálya = 'testHTML.html'

Visszatéréshttp.szerver.EgyszerűHTTPRequestHandler.do_GET(maga)


# Az objektum deklarálása

web szerver=http.szerver.HTTPServer((HÁZIGAZDA,KIKÖTŐ),PythonServer)


# Nyomtassa ki a webszerver URL -jét

nyomtatás('A szerver elindult http: //%s:%s'%(HÁZIGAZDA,KIKÖTŐ))


próbáld ki:

# Futtassa a webszervert

web szerver.serve_forever()

kivéve Billentyűzet megszakítás:

# Állítsa le a webszervert

web szerver.server_close()

nyomtatás('A szerver leállt.')

Kimenet

A következő kimenet jelenik meg a fenti szkript végrehajtásával.

A következő oldal megjelenik a böngészőben, ha a webszerver böngészőjének alap URL -je végrehajtódik.

Következtetés

A webszerverek megvalósításának különböző módjai a használatával http. szerver modul bemutatta ezt az oktatóanyagot, hogy segítsen a python felhasználóinak egy egyszerű webszerver létrehozásában a Pythonban.