Python

Kuinka käyttää Python SimpleHTTPServeria

Kuinka käyttää Python SimpleHTTPServeria

Verkkopalvelimen päätehtävä on käsitellä asiakkaan HTTP-pyyntöjä. Se odottaa tietyltä IP-osoitteelta ja porttinumerolta tulevia HTTP-pyyntöjä, käsittelee pyynnön ja lähettää asiakkaan vastauksen takaisin. Python käyttää SimpleHTTPS-palvelin moduulin luoda verkkopalvelin välittömästi ja helposti palvelemaan tiedoston sisältöä palvelimelta. Sitä voidaan käyttää myös tiedostojen jakamiseen. Tätä varten sinun on otettava tämä moduuli käyttöön jaettavien tiedostojen sijainnilla. Tämän moduulin mukana tulee Python-tulkki. Sinun ei tarvitse asentaa sitä. Koska tämä moduuli on sulautettu http.palvelin moduuli python3: ssa, joten sinun on suoritettava http.palvelin suorittaa verkkopalvelin python3: ssa. Kuinka web-palvelinta voidaan käyttää HTTP-pyyntöjen käsittelemiseen ja tiedostojen jakamiseen, on esitetty tässä opetusohjelmassa.

Suorita Web-palvelin terminaalista

Suorita seuraava komento suorittaaksesi verkkopalvelimen päätelaitteesta. Jos komennossa ei ole määritetty porttinumeroa, verkkopalvelin alkaa 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-portissa.

Suorita verkkopalvelin Python-komentosarjalla

Luo kansio nimeltä suorittamalla seuraavat komennot verkko ja siirry kansioon. Kaikki tämän opetusohjelman komentotiedostot ja HTML-tiedostot luodaan tähän kansioon.

$ mkdir -verkko
$ cd -verkko

Luo HTML-tiedosto nimeltä testHTML.html sisällä verkko kansio, jossa on seuraava komentosarja. Tämä tiedosto toimitetaan verkkopalvelimelta myöhemmin.

testHTML.html



<br>Testaa Python-verkkopalvelin<br>



Kuvaa ei löydy

Onnittelut! Verkkopalvelimesi toimii onnistuneesti.


Vierailla LinuxHint.com lisää Python-oppaita




Esimerkki 1: Suorita verkkopalvelin tietyssä portin numerossa

Luo python-tiedosto seuraavalla komentosarjalla suorittaaksesi palvelimen 8008-portissa. http.palvelin moduuli on tuotu web-palvelimen suorittamiseksi, ja SocketServer moduuli on tuotu käsittelemään 8080-portista tulevaa HTTP-pyyntöä. Nimetty objekti Käsittelijä on luotu käsittelemään HTTP-pyyntöjä. ikuisesti() -toimintoa kutsutaan suorittamaan verkkopalvelin. Komentosarjaan ei ole lisätty lopetusehtoja. Joten komentosarja luo virheen, kun käyttäjä yrittää pysäyttää palvelimen.

# Tuo palvelinmoduuli
tuo http.palvelin
# Tuo SocketServer-moduuli
tuo pistorasiapalvelin
# Aseta portin numero
portti = 8080
# Luo objekti HTTP-pyyntöjen käsittelemiseksi
Käsittelijä = http.palvelin.YksinkertainenHTTPRequestHandler
# Suorita palvelin ikuisesti käsitelläksesi HTTP-pyyntöjä
pistorasialla.TCPServer (("", portti, Handler) nimellä httpd:
tulosta ("Verkkopalvelin on käynnissä osoitteessa http: // localhost:% s"% portti)
httpd.serve_forever ()

Tuotos

Seuraava lähtö tulee näkyviin yllä olevan komentosarjan suorittamisen jälkeen.


Luettelo komentosarjan sijainnin tiedostoista ja kansioista näkyy, jos seuraava URL-osoite suoritetaan selaimesta.

http: // localhost: 8080

Jos käyttäjä painaa CTRL + C päätelaitteesta tai painaa pysäytyspainiketta PyCharm-editorista, seuraava virhesanoma tulee näkyviin. Tämä ongelma on ratkaistu tämän opetusohjelman seuraavassa esimerkissä.

Esimerkki 2: Suorita verkkopalvelin komentorivillä määritetyllä portin numerolla

Luo python-tiedosto seuraavalla komentosarjalla Web-palvelimen suorittamiseksi tietyssä portissa, jos komentoriviargumentti antaa portin numeron; muuten 5000 käytetään oletusporttina. sys moduuli on tuotu komentosarjaan komentoriviargumenttien lukemista varten. yritä lukuun ottamatta lohko on lisätty komentosarjaan käsittelemään virhettä, kun käyttäjä yrittää pysäyttää palvelimen.  Jos KeyboardInterrupt-poikkeus näkyy palvelimen suorittamisen jälkeen, kiinni() toiminto kutsutaan pysäyttämään verkkopalvelin.

# Tuo palvelinmoduuli
tuo http.palvelin
# Tuo SocketServer-moduuli
tuo pistorasiapalvelin
# Tuo järjestelmän moduuli
tuoda sys
yrittää:
# Aseta portin numero
jos sys.argv [1:]:
portti = int (sys.argv [1])
muu:
portti = 5000
# Aseta IP-osoite
palvelimen osoite = ('127.0.0.1 ', portti)
# Luo objekti HTTP-pyyntöjen käsittelemiseksi
Käsittelijä = http.palvelin.YksinkertainenHTTPRequestHandler
# Suorita verkkopalvelin ikuisesti käsitelläksesi HTTP-pyyntöjä
pistorasialla.TCPServer (("", portti, Handler) nimellä httpd:
tulosta ("Verkkopalvelin on käynnissä osoitteessa http: // localhost:% s"% portti)
httpd.serve_forever ()
# Pysäytti palvelimen
paitsi KeyboardInterrupt:
httpd.palvelimen_sulje ()
print ("Palvelin on pysäytetty.")

Tuotos

Seuraava lähtö näkyy, kun yllä oleva komentosarja on suoritettu ilman komentoriviargumenttia.

Seuraava tulos tulee näkyviin, jos suoritat HTML-tiedoston, joka on luotu edellisessä vaiheessa verkkopalvelimesta.

Aseta komentoriviargumentin arvo avaamalla määritysvalintaikkuna PyCharm-editorin Suorita-valikosta. Parameters-kenttää käytetään asettamaan komentoriviargumentti, 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-tiedostolla

Luo python-tiedosto seuraavalla komentosarjalla, jotta voit suorittaa verkkopalvelimen määrittelemällä HTML-tiedoston perus-URL-osoitteelle. Isäntänimi ja portin numero on määritelty komentosarjan alussa. PythonServer class on määritellyt komentosarjassa näyttämään HTML-tiedoston selaimessa, kun verkkopalvelin alkaa toimia.

# Tuo palvelinmoduuli
tuo http.palvelin
# Aseta isäntänimi
HOST = "paikallinen isäntä"
# Aseta portin numero
PORTTI = 4000
# Määritä luokka Web-palvelimen hakemistosivun näyttämiseksi
luokka PythonServer (http.palvelin.SimpleHTTPRequestHandler):
def do_GET (itse):
jos itse.polku == '/':
itse.polku = 'testHTML.html '
palauta http.palvelin.YksinkertainenHTTPRequestHandler.do_GET (itse)
# Ilmoita luokan esine
webServer = http.palvelin.HTTPServer ((HOST, PORT), PythonServer)
# Tulosta verkkopalvelimen URL-osoite
tulosta ("Palvelin aloitti http: //% s:% s"% (HOST, PORT))
yrittää:
# Suorita verkkopalvelin
verkkopalvelin.serve_forever ()
paitsi KeyboardInterrupt:
# Pysäytä verkkopalvelin
verkkopalvelin.palvelimen_sulje ()
print ("Palvelin on pysäytetty.")

Tuotos

Seuraava tulos tulee näkyviin suorittamalla yllä oleva komentosarja.

Seuraava sivu näkyy selaimessa, jos selaimen peruspalvelimen URL-osoite suoritetaan.

Johtopäätös

Eri tapoja toteuttaa web-palvelimia käyttämällä http. palvelin Tässä opetusohjelmassa moduuli on auttanut python-käyttäjiä luomaan yksinkertaisen verkkopalvelimen Pythonissa.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...