Python SimpleHTTPServerin käyttäminen

How Use Python Simplehttpserver



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 palvelinmoduuli

tuontihttp.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.

http: // localhost: 8080

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 palvelinmoduuli

tuontihttp.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 palvelinmoduuli

tuontihttp.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.