Kuidas kasutada Python SimpleHTTPServerit

How Use Python Simplehttpserver



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 serverimoodul

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

http: // localhost: 8080

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 serverimoodul

importhttp.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 serverimoodul

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