Veebiserveri peamine ülesanne on kliendi HTTP -päringute käsitlemine. See ootab konkreetse IP -aadressi ja pordi numbri HTTP -päringuid, tegeleb päringuga ja saadab kliendi vastuse tagasi. Python kasutab LihtneHTTPServer moodul, et luua veebiserver koheselt ja hõlpsalt serveerida faili sisu serverist. Seda saab kasutada ka failide jagamiseks. Selleks peate lubama selle mooduli jagatavate failide asukohaga. Selle mooduliga on kaasas Pythoni tõlk. Te ei pea seda installima. Kuna see moodul on ühendatud http.server moodul python3 -s, nii et peate käivitama http.server veebiserveri käivitamiseks python3 -s. Selles õpetuses on näidatud, kuidas veebiserverit saab kasutada HTTP -päringute käsitlemiseks ja failide jagamiseks.
Käivitage veebiserver terminalist
Veebiserveri terminalist käivitamiseks käivitage järgmine käsk. Kui käsus pole määratud pordi numbrit, käivitatakse veebiserver vaikimisi 8000 pordist.
$ python3 -m http.server
Kui veebiserver on korralikult käivitatud, kuvatakse järgmine väljund. Serveri peatamiseks vajutatakse CTRL+C.
Käivitage järgmine käsk veebiserveri käivitamiseks pordis 8080.
$ python3 -m http.server 8080
Kui veebiserver käivitatakse pordis 8080, kuvatakse järgmine väljund.
Käivitage veebiserver Pythoni skripti abil
Nimega kausta loomiseks käivitage järgmised käsud võrk ja minge kausta. Kõik selle õpetuse skripti- ja HTML -failid luuakse sellesse kausta.
$ mkdir veeb$CDvõrk
Looge HTML -fail nimega testHTML.html sees võrk kaust järgmise skriptiga. Seda faili serveeritakse veebiserverist hiljem.
testHTML.html
< html >< pea >
< tiitel >
Testige Pythoni veebiserverit
</ tiitel >
</ pea >
< keha >
< Keskus >
< img src='logo.jpeg' kõike='Pilti ei leitud'/>
< h2 stiil='värv: roheline'>Palju õnne! Teie veebiserver töötab edukalt.</ h2 >
< lk >Külastage< et href='www.linuxhint.com'>LinuxHint.com</ et >rohkem õpetusi Pythonist</ lk >
</ Keskus >
</ keha >
</ html >
Näide-1: käivitage veebiserver konkreetse pordi numbri abil
Veebiserveri 8008 pordi käitamiseks looge järgmise skriptiga pythoni fail. http.server moodul on veebiserveri käitamiseks imporditud ja SocketServer moodul on imporditud 8080 pordist tuleva HTTP päringu haldamiseks. Objekt nimega Käitleja on loodud HTTP päringute käsitlemiseks. igavesti () funktsiooni kutsutakse käivitama veebiserverit. Skriptile ei ole lisatud ühtegi lõpetamistingimust. Niisiis tekitab skript tõrke, kui kasutaja proovib serverit peatada.
# Impordi serverimoodulimporthttp.server
# Impordi SocketServer moodul
importpistikupesa
# Määrake pordi number
sadam= 8080
# Loo objekt HTTP -päringute käsitlemiseks
Käitleja=http.server.LihtneHTTPRequestHandler
# Käivitage server igavesti HTTP -päringute käsitlemiseks
koospistikupesa.TCPServer(('',sadam),Käitleja) naguhttpd:
printida('Veebiserver töötab aadressil http: // localhost:%s'%port)
httpd.serveeri_ igaveseks()
Väljund
Pärast ülaltoodud skripti täitmist ilmub järgmine väljund.
Skripti asukoha failide ja kaustade loend kuvatakse, kui brauser käivitab järgmise URL -i.
Kui kasutaja vajutab terminalist klahvikombinatsiooni CTRL+C või vajutab PyCharmi redaktoris peatamisnuppu, kuvatakse järgmine tõrketeade. See probleem on lahendatud selle õpetuse järgmises näites.
Näide-2: Käivitage veebiserver käsureal määratud pordi numbriga
Kui käsurea argument annab pordi numbri, looge järgmise skriptiga python-fail, et käivitada veebiserver konkreetses pordis; vastasel juhul kasutatakse vaikimisi kasutatavat pordi 5000. sys moodul on skripti imporditud käsurea argumentide väärtuste lugemiseks. proovige-välja arvatud skripti on lisatud plokk, mis tegeleb veaga, kui kasutaja proovib serverit peatada. Kui pärast serveri käivitamist ilmub KeyboardInterrupt erand, siis Sulge() funktsiooni kutsutakse veebiserveri peatamiseks.
# Impordi serverimoodulimporthttp.server
# Impordi SocketServer moodul
importpistikupesa
# Impordi sys moodul
import sys
proovige:
# Määrake pordi number
kui sys.argv[1:]:
sadam= int(sys.argv[1])
muidu:
sadam= 5000
# Määrake IP -aadress
serveri aadress= („127.0.0.1”,sadam)
# Loo objekt HTTP -päringute käsitlemiseks
Käitleja=http.server.LihtneHTTPRequestHandler
# HTTP -päringute haldamiseks käivitage veebiserver igavesti
koospistikupesa.TCPServer(('',sadam),Käitleja) naguhttpd:
printida('Veebiserver töötab aadressil http: // localhost:%s'%port)
httpd.serveeri_ igaveseks()
# Peatas serveri
välja arvatud Klaviatuur Katkestatud:
httpd.server_close()
printida('Server on peatatud.')
Väljund
Järgmine väljund ilmub pärast ülaltoodud skripti täitmist ilma käsurea argumendi väärtuseta.
Järgmine väljund kuvatakse, kui käivitate veebiserverist eelmises etapis loodud HTML -faili.
Käsurea argumendi väärtuse määramiseks avage PyCharmi redaktori menüüst Käivita konfiguratsiooni dialoogiboks. Parameetrite välja kasutatakse käsurea argumendi määramiseks ja 3000 on siin seatud argumendi väärtuseks.
Kui käivitate skripti uuesti pärast argumendi väärtuse määramist, kuvatakse järgmine väljund.
Näide-3: käivitage veebiserver koos HTML-failiga
Looge veebiserveri käitamiseks järgmise skriptiga pythoni fail, määrates baas -URL -i jaoks HTML -faili. Hosti nimi ja pordi number on skripti alguses määratletud. PythonServer class on skriptis määratlenud HTML -faili kuvamise brauseris, kui veebiserver hakkab tööle.
# Importige serverimoodulimporthttp.server
# Määrake hostinimi
HOST= 'localhost'
# Määrake pordi number
SADAM= 4000
# Määrake veebiserveri indeksi lehe kuvamiseks klass
klassiPythonServer(http.server.LihtneHTTPRequestHandler):
defdo_GET(mina):
kui mina.tee == '/':
mina.tee = 'testHTML.html'
tagasihttp.server.LihtneHTTPRequestHandler.do_GET(mina)
# Kuulutage klassi objekt
veebiserver=http.server.HTTPServer((HOST,SADAM),PythonServer)
# Printige veebiserveri URL
printida('Server käivitas http: //%s:%s'%(HOST,SADAM))
proovige:
# Käivitage veebiserver
veebiserver.serveeri_ igaveseks()
välja arvatud Klaviatuur Katkestatud:
# Peatage veebiserver
veebiserver.server_close()
printida('Server on peatatud.')
Väljund
Järgmine väljund kuvatakse ülaltoodud skripti täitmisel.
Järgmine leht kuvatakse brauseris, kui veebiserveri baasi URL käivitub.
Järeldus
Veebiserverite rakendamise erinevad viisid, kasutades http. server moodul on selles juhendis näidanud, et aidata pythoni kasutajatel luua Pythonis lihtne veebiserver.