Verkkopalvelimen päätehtävänä on käsitellä asiakkaan HTTP -pyynnöt. Se odottaa HTTP -pyyntöjä, jotka tulevat tietystä IP -osoitteesta ja portin numerosta, käsittelee pyynnön ja lähettää asiakkaan vastauksen takaisin. Python käyttää Yksinkertainen HTTPServer moduulilla voit luoda verkkopalvelimen heti ja palvella tiedoston sisällön palvelimelta helposti. Sitä voidaan käyttää myös tiedostojen jakamiseen. Tätä varten sinun on otettava tämä moduuli käyttöön jaettavien tiedostojen sijainnin kanssa. Tämän moduulin mukana tulee Python -tulkki. Sinun ei tarvitse asentaa sitä. Koska tämä moduuli on yhdistetty http.palvelin moduuli python3: ssa, joten sinun on suoritettava http.palvelin ajaa verkkopalvelinta python3: ssa. Tässä opetusohjelmassa on esitetty, kuinka verkkopalvelinta voidaan käyttää HTTP -pyyntöjen käsittelyyn ja tiedostojen jakamiseen.
Suorita verkkopalvelin päätelaitteesta
Suorita seuraava komento suorittaaksesi verkkopalvelimen päätelaitteesta. Jos komennossa ei ole määritetty portin numeroa, verkkopalvelin käynnistyy oletusarvoisesti 8000 -portista.
$ python3 -m http.palvelin
Seuraava tulos tulee näkyviin, jos verkkopalvelin käynnistetään oikein. Pysäytä palvelin painamalla CTRL+C.
Käynnistä verkkopalvelin 8080 -portissa suorittamalla seuraava komento.
$ python3 -m http.palvelin 8080
Seuraava tulos tulee näkyviin, jos verkkopalvelin käynnistetään 8080 -portista.
Suorita verkkopalvelin Python -komentosarjan avulla
Luo kansio nimeltä suorittamalla seuraavat komennot Web ja siirry kansioon. Kaikki tämän opetusohjelman komentotiedostot ja HTML -tiedostot luodaan tähän kansioon.
$ mkdir verkko$CDWeb
Luo HTML -tiedosto nimeltä testHTML.html sisällä Web kansio, jossa on seuraava komentosarja. Tämä tiedosto näytetään myöhemmin verkkopalvelimelta.
testHTML.html
< html >< pää >
< otsikko >
Testaa Python -verkkopalvelin
</ otsikko >
</ pää >
< vartalo >
< keskusta >
< img src='logo.jpeg' kaikki='Kuvaa ei löydy'/>
< h2 tyyli='väri: vihreä'>Onnittelut! Verkkopalvelimesi toimii onnistuneesti.</ h2 >
< s >Vierailla< kohteeseen href='www.linuxhint.com'>LinuxHint.com</ kohteeseen >lisää opetusohjelmia Pythonista</ s >
</ keskusta >
</ vartalo >
</ html >
Esimerkki 1: Suorita verkkopalvelin tietyssä portin numerossa
Luo python -tiedosto seuraavalla komentosarjalla, jotta voit käyttää verkkopalvelinta 8008 -portissa. http.palvelin moduuli on tuotu verkkopalvelinta varten ja SocketServer moduuli on tuotu käsittelemään 8080 -portista tulevaa HTTP -pyyntöä. Nimi nimeltä Käsittelijä on luotu käsittelemään HTTP -pyyntöjä. ikuisesti() -toimintoa kutsutaan ajamaan verkkopalvelinta. Käsikirjoitukseen ei ole lisätty päättymisehtoja. Joten skripti tuottaa virheen, kun käyttäjä yrittää pysäyttää palvelimen.
# Tuo palvelinmoduulituontihttp.palvelin
# Tuo SocketServer -moduuli
tuontipistorasiapalvelin
# Aseta portin numero
satamaan= 8080
# Luo objekti HTTP -pyyntöjen käsittelyä varten
Käsittelijä=http.palvelin.YksinkertainenHTTPRequestHandler
# Suorita palvelin ikuisesti käsitelläksesi HTTP -pyynnöt
kanssapistorasiapalvelin.TCPServer(('',satamaan),Käsittelijä) kutenhttpd:
Tulosta('Verkkopalvelin on käynnissä osoitteessa http: // localhost:%s'%portti)
httpd.palvella_ ikuisesti()
Lähtö
Seuraava tulos tulee näkyviin yllä olevan komentosarjan suorittamisen jälkeen.
Komentosarjan tiedostojen ja kansioiden luettelo näytetään, jos seuraava URL -osoite suoritetaan selaimesta.
Jos käyttäjä painaa CTRL+C päätelaitteesta tai paina Stop -painiketta PyCharm -editorissa, seuraava virhesanoma tulee näkyviin. Tämä ongelma on ratkaistu tämän opetusohjelman seuraavassa esimerkissä.
Esimerkki 2: Suorita verkkopalvelin komentorivin määrittämällä portinumerolla
Luo python-tiedosto seuraavalla komentosarjalla ajaaksesi verkkopalvelinta tietyssä portissa, jos komentoriviargumentti antaa portin numeron; Muussa tapauksessa oletusporttina käytetään 5000. sys moduuli on tuotu komentosarjassa komentorivin argumenttien arvojen lukemiseen. kokeile-paitsi komentosarjaan on lisätty lohko käsittelemään virhettä, kun käyttäjä yrittää pysäyttää palvelimen. Jos KeyboardInterrupt -poikkeus tulee näkyviin palvelimen suorittamisen jälkeen, kiinni() toiminto pysäyttää verkkopalvelimen.
# Tuo palvelinmoduulituontihttp.palvelin
# Tuo SocketServer -moduuli
tuontipistorasiapalvelin
# Tuo sys -moduuli
tuonti sys
yrittää:
# Aseta portin numero
jos sys.argv[1:]:
satamaan= int(sys.argv[1])
muu:
satamaan= 5000
# Aseta IP -osoite
palvelimen osoite= ('127.0.0.1',satamaan)
# Luo objekti HTTP -pyyntöjen käsittelyä varten
Käsittelijä=http.palvelin.YksinkertainenHTTPRequestHandler
# Suorita web -palvelin ikuisesti käsitelläksesi HTTP -pyynnöt
kanssapistorasiapalvelin.TCPServer(('',satamaan),Käsittelijä) kutenhttpd:
Tulosta('Verkkopalvelin on käynnissä osoitteessa http: // localhost:%s'%portti)
httpd.palvella_ ikuisesti()
# Pysäytti palvelimen
paitsi Näppäimistö Keskeytetty:
httpd.server_close()
Tulosta('Palvelin on pysäytetty.')
Lähtö
Seuraava tulos tulee näkyviin, kun yllä oleva komentosarja on suoritettu ilman komentoriviargumentin arvoa.
Seuraava tulos tulee näkyviin, jos suoritat HTML -tiedoston, joka on luotu edellisessä vaiheessa verkkopalvelimelta.
Määritä komentoriviargumentin arvo avaamalla määritysvalintaikkuna PyCharm-editorin Suorita-valikosta. Parametrit-kenttää käytetään komentoriviargumentin asettamiseen, ja 3000 asetetaan tässä argumentin arvoksi.
Seuraava tulos tulee näkyviin, jos suoritat komentosarjan uudelleen argumentin arvon asettamisen jälkeen.
Esimerkki 3: Suorita verkkopalvelin HTML-tiedoston kanssa
Luo python -tiedosto seuraavalla komentosarjalla verkkopalvelimen suorittamiseksi määrittämällä perus -URL -osoitteen HTML -tiedosto. Isäntänimi ja portin numero on määritelty komentosarjan alussa. PythonServer luokka on määrittänyt komentosarjassa näyttämään HTML -tiedoston selaimessa, kun verkkopalvelin alkaa toimia.
# Tuo palvelinmoduulituontihttp.palvelin
# Aseta isäntänimi
Isäntä= 'paikallinen isäntä'
# Aseta portin numero
SATAMA= 4000
# Määritä luokka, joka näyttää verkkopalvelimen hakemistosivun
luokkaPythonServer(http.palvelin.YksinkertainenHTTPRequestHandler):
defdo_GET(itse):
jos itse.polku == '/':
itse.polku = 'testHTML.html'
palatahttp.palvelin.YksinkertainenHTTPRequestHandler.do_GET(itse)
# Ilmoita luokan kohde
verkkopalvelin=http.palvelin.HTTPServer((Isäntä,SATAMA),PythonServer)
# Tulosta verkkopalvelimen URL -osoite
Tulosta('Palvelin käynnistyi http: //%s:%s'%(Isäntä,SATAMA))
yrittää:
# Suorita verkkopalvelin
verkkopalvelin.palvella_ ikuisesti()
paitsi Näppäimistö Keskeytetty:
# Pysäytä verkkopalvelin
verkkopalvelin.server_close()
Tulosta('Palvelin on pysäytetty.')
Lähtö
Seuraava tulos tulee näkyviin suorittamalla yllä oleva komentosarja.
Seuraava sivu tulee näkyviin selaimeen, jos selaimen perus -URL -osoite suoritetaan.
Johtopäätös
Eri tapoja toteuttaa web -palvelimia käyttämällä http. palvelin moduuli on osoittanut tässä opetusohjelmassa, että se auttaa python -käyttäjiä luomaan yksinkertaisen verkkopalvelimen Pythoniin.