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ásaimporthttp.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.
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ásaimporthttp.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 modultimporthttp.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.