Veebiserveri peamine ülesanne on kliendi HTTP-päringute käsitlemine. See ootab konkreetselt IP-aadressilt ja pordinumbrilt pärinevaid HTTP-päringuid, käsitleb päringut ja saadab kliendi vastuse tagasi. Python kasutab SimpleHTTPServer moodul veebiserveri loomiseks koheselt ja hõlpsalt serveri faili sisu serveerimiseks. Seda saab kasutada ka failide jagamiseks. Selleks peate selle mooduli lubama jagatavate failide asukohaga. Selle mooduliga on kaasas Pythoni tõlk. Te ei pea seda installima. Kuna see moodul on ühendatud http.server moodulit python3, nii et peate käivitama http.server veebiserveri käivitamiseks python3-s. Kuidas veebiserverit saab kasutada HTTP-päringute käsitlemiseks ja failide jagamiseks, on näidatud selles õpetuses.
Käivitage veebiserver terminalist
Veebiserveri käivitamiseks terminalist käivitage järgmine käsk. Kui käsus pole määratletud ühtegi pordi numbrit, algab veebiserver vaikimisi 8000 pordist.
$ python3 -m http.server
Kui veebiserver on õigesti käivitatud, kuvatakse järgmine väljund. Serveri peatamiseks vajutatakse klahvikombinatsiooni CTRL + C.
Veebiserveri käivitamiseks pordist 8080 käivitage järgmine käsk.
Kui veebiserver käivitatakse pordis 8080, kuvatakse järgmine väljund.
Käivitage veebiserver Pythoni skripti abil
Nimelise kausta loomiseks käivitage järgmised käsud võrk ja minge kausta. Kõik selle õpetuse skriptifailid ja HTML-failid luuakse selles kaustas.
$ mkdir veeb$ cd veeb
Looge HTML-fail nimega testHTML.HTML sees võrk kaust järgmise skriptiga. Seda faili serveeritakse hiljem veebiserverist.
testHTML.HTML
Testige Pythoni veebiserverit
Palju õnne! Teie veebiserver töötab edukalt.
Külasta Linuxi vihje.com rohkem Pythoni õpetusi
Näide 1: käivitage veebiserver konkreetse pordinumbriga
Veebiserveri käivitamiseks pordil 8008 looge järgmise skriptiga pythoni fail. http.server moodul on veebiserveri käitamiseks imporditud ja SocketServer moodul on imporditud 8080 pordist tulevate HTTP-päringute käsitlemiseks. Objekt nimega Handler on loodud HTTP-päringute töötlemiseks. igavesti () funktsiooni kutsutakse veebiserveri käitamiseks. Skripti pole lisatud ühtegi lõpetamistingimust. Niisiis, skript tekitab tõrke, kui kasutaja üritab serverit peatada.
# Serveri mooduli importimineimportida http.server
# Impordi SocketServeri moodul
impordi pistikupesa
# Määrake pordi number
port = 8080
# Loo objekt HTTP-päringute töötlemiseks
Handler = http.server.SimpleHTTPRequestHandler
# HTTP-päringute käsitlemiseks käitage server igavesti
pistikupesaga.TCPServer (("", port), Handler) aadressina httpd:
print ("Veebiserver töötab aadressil http: // localhost:% s"% port)
httpd.serve_forever ()
Väljund
Pärast ülaltoodud skripti käivitamist ilmub järgmine väljund.
Skripti asukoha failide loend ja kaust kuvatakse, kui brauserist käivitatakse järgmine URL.
Kui kasutaja vajutab terminalist klahvikombinatsiooni CTRL + C või vajutab PyCharmi redaktori stopp-nuppu, kuvatakse järgmine tõrketeade. See probleem on selle õpetuse järgmises näites lahendatud.
Näide 2: käivitage veebiserver käsureal määratletud pordinumbriga
Kui käsurea argument annab pordi numbri, looge veebiserveri käitamiseks konkreetses pordis järgmise skriptiga pythoni fail; vastasel juhul kasutatakse vaikepordina 5000. sys moodul on skripti imporditud käsurea argumentide väärtuste lugemiseks. proovige välja arvatud Blokeering on skripti lisatud tõrke kõrvaldamiseks, kui kasutaja proovib serveri peatada. Kui pärast serveri käivitamist ilmub erand KeyboardInterrupt, siis Sulge() Veebiserveri peatamiseks kutsutakse funktsiooni.
# Serveri mooduli importimineimportida http.server
# Impordi SocketServeri moodul
impordi pistikupesa
# Impordi sys moodul
impordi süsteem
proovige:
# Määrake pordi number
kui sys.argv [1:]:
port = int (sys.argv [1])
muu:
port = 5000
# Määrake IP-aadress
serveri aadress = ('127.0.0.1 ', sadam)
# Loo objekt HTTP-päringute töötlemiseks
Handler = http.server.SimpleHTTPRequestHandler
# HTTP-päringute käsitlemiseks käivitage veebiserver igavesti
pistikupesaga.TCPServer (("", port), Handler) aadressina httpd:
print ("Veebiserver töötab aadressil http: // localhost:% s"% port)
httpd.serve_forever ()
# Peatas serveri
välja arvatud KeyboardInterrupt:
httpd.server_close ()
print ("Server on peatatud.")
Väljund
Järgmine väljund ilmub pärast ülaltoodud skripti käivitamist ilma käsurea argumendi väärtuseta.
Järgmine väljund ilmub siis, kui käivitate eelmises etapis loodud veebiserverist HTML-faili.
Käsurea argumendi väärtuse määramiseks avage PyCharmi redaktori menüüs Run käsk konfigureerimise dialoogiboks. Parameetrite välja kasutatakse käsurea argumendi määramiseks ja siin on argumendi väärtuseks määratud 3000.
Kui käivitate skripti uuesti pärast argumendi väärtuse määramist, kuvatakse järgmine väljund.
3. näide: käivitage veebiserver koos HTML-failiga
Veebiserveri käitamiseks looge järgmise skriptiga pythoni fail, määrates HTML-faili põhi-URL-i jaoks. Hosti nimi ja pordi number on skripti alguses määratletud. PythonServer klass on skriptis määranud HTML-faili kuvamiseks brauseris, kui veebiserver töötab.
# Importige serverimoodulimportida http.server
# Määrake hostinimi
HOST = "kohalik host"
# Määrake pordi number
SADAM = 4000
# Määrake klass veebiserveri indekslehe kuvamiseks
klassi PythonServer (http.server.SimpleHTTPRequestHandler):
def do_GET (ise):
kui ise.tee == '/':
ise.tee = 'testHTML.html '
tagastage http.server.SimpleHTTPRequestHandler.do_GET (ise)
# Deklareerida klassi objekt
veebiserver = http.server.HTTPServer ((HOST, PORT), PythonServer)
# Trükkige veebiserveri URL
print ("Server alustas http: //% s:% s"% (HOST, PORT))
proovige:
# Käivitage veebiserver
veebiserver.serve_forever ()
välja arvatud KeyboardInterrupt:
# Peatage veebiserver
veebiserver.server_close ()
print ("Server on peatatud.")
Väljund
Järgmine väljund ilmub ülaltoodud skripti käivitamisel.
Järgmine leht kuvatakse brauseris, kui brauseri veebiserveri põhi-URL käivitub.
Järeldus
Erinevad viisid veebiserverite rakendamiseks rakenduse abil http. server moodul on selles õpetuses näidanud, et aidata pythoni kasutajatel luua Pythonis lihtne veebiserver.