Python

Kā izmantot Python SimpleHTTPServer

Kā izmantot Python SimpleHTTPServer

Tīmekļa servera galvenais uzdevums ir apstrādāt klienta HTTP pieprasījumus. Tas gaida HTTP pieprasījumus, kas nāk no konkrētās IP adreses un porta numura, apstrādā pieprasījumu un nosūta klienta atbildi atpakaļ. Python izmanto SimpleHTTPServer modulis, lai izveidotu tīmekļa serveri uzreiz un ērti apkalpotu faila saturu no servera. To var izmantot arī failu koplietošanai. Lai to izdarītu, jums ir jāiespējo šis modulis ar koplietojamo failu atrašanās vietu. Šis modulis nāk ar Python tulku. Jums tas nav jāinstalē. Tā kā šis modulis ir apvienots ar http.serveris modulis python3, tāpēc jums ir jāpalaiž http.serveris palaist tīmekļa serveri python3. Kā tīmekļa serveri var izmantot, lai apstrādātu HTTP pieprasījumus un koplietotu failus, ir parādīts šajā apmācībā.

Palaidiet Web serveri no termināļa

Palaidiet šo komandu, lai palaistu tīmekļa serveri no termināļa. Ja komandā nav definēts porta numurs, tīmekļa serveris pēc noklusējuma sāksies ar 8000 portu.

$ python3 -m http.serveris

Ja tīmekļa serveris tiek palaists pareizi, parādīsies šāda izeja. Lai apturētu serveri, tiek nospiesta CTRL + C.


Palaidiet šo komandu, lai palaistu tīmekļa serveri 8080 ostā.

$ python3 -m http.serveris 8080

Ja tīmekļa serveris tiek palaists 8080 ostā, parādīsies šāda izeja.

Palaidiet Web serveri, izmantojot Python skriptu

Palaidiet šīs komandas, lai izveidotu mapi ar nosaukumu tīmeklī un dodieties uz mapi. Visi šīs apmācības skriptu faili un HTML faili tiks izveidoti šajā mapē.

$ mkdir tīmeklis
$ cd tīmeklis

Izveidojiet HTML failu ar nosaukumu testHTML.html iekšpusē tīmeklī mapi ar šādu skriptu. Šis fails vēlāk tiks piegādāts no tīmekļa servera.

testHTML.html



<br>Pārbaudiet Python tīmekļa serveri<br>



Attēls nav atrasts

Apsveicu! Jūsu Web serveris darbojas veiksmīgi.


Vizīte LinuxHint.com lai iegūtu vairāk apmācību par Python




1. piemērs: palaidiet tīmekļa serveri ar konkrēto porta numuru

Izveidojiet pitona failu ar šo skriptu, lai palaistu tīmekļa serveri pie 8008 porta. http.serveris modulis ir importēts, lai palaistu tīmekļa serveri, un SocketServer modulis ir importēts, lai apstrādātu HTTP pieprasījumu, kas nāk no 8080 porta. Objekts ar nosaukumu Handlers ir izveidots, lai apstrādātu HTTP pieprasījumus. uz visiem laikiem () funkcija tiek izsaukta, lai palaistu tīmekļa serveri. Skriptam nav pievienots pārtraukšanas nosacījums. Tātad, skripts radīs kļūdu, kad lietotājs mēģinās apturēt serveri.

# Importēt servera moduli
importēt http.serveris
# Importējiet SocketServer moduli
importēt ligzdu serveri
# Iestatiet porta numuru
osta = 8080
# Izveidojiet objektu HTTP pieprasījumu apstrādei
Apstrādātājs = http.serveris.Vienkāršs HTTPRequestHandler
# Palaist serveri uz visiem laikiem, lai apstrādātu HTTP pieprasījumus
ar kontaktligzdu.TCPServer (("", ports), apstrādātājs) kā httpd:
drukāt ("Tīmekļa serveris darbojas vietnē http: // localhost:% s"% ports)
httpd.serve_forever ()

Rezultāts

Pēc iepriekš minētā skripta izpildes parādīsies šāda izeja.


Skriptu atrašanās vietas failu un mapju saraksts tiks parādīts, ja pārlūkprogrammā tiek izpildīts šāds URL.

http: // localhost: 8080

Ja lietotājs nospiež CTRL + C no termināla vai nospiež apturēšanas pogu no PyCharm redaktora, tiks parādīts šāds kļūdas ziņojums. Šī problēma ir atrisināta nākamajā šīs apmācības piemērā.

2. piemērs: palaidiet tīmekļa serveri ar porta numuru, kas noteikts ar komandrindu

Izveidojiet pitona failu ar šādu skriptu, lai palaistu tīmekļa serveri konkrētajā ostā, ja komandrindas arguments norāda porta numuru; pretējā gadījumā 5000 tiks izmantots kā noklusējuma ports. sys modulis ir importēts skriptā, lai nolasītu komandrindas argumentu vērtības. mēģināt, izņemot skripts ir pievienots bloks, lai apstrādātu kļūdu, kad lietotājs mēģina apturēt serveri.  Ja pēc servera palaišanas parādās KeyboardInterrupt izņēmums, tad aizvērt () funkcija tiks izsaukta, lai apturētu tīmekļa serveri.

# Importēt servera moduli
importēt http.serveris
# Importējiet SocketServer moduli
importēt ligzdu serveri
# Importēt sys moduli
importa sys
mēģiniet:
# Iestatiet porta numuru
ja sys.argv [1:]:
ports = int (sys.argv [1])
cits:
osta = 5000
# Iestatiet IP adresi
servera_adrese = ('127.0.0.1 ', osta)
# Izveidojiet objektu HTTP pieprasījumu apstrādei
Apstrādātājs = http.serveris.Vienkāršs HTTPRequestHandler
# Palaist tīmekļa serveri uz visiem laikiem, lai apstrādātu HTTP pieprasījumus
ar kontaktligzdu.TCPServer (("", ports), apstrādātājs) kā httpd:
drukāt ("Tīmekļa serveris darbojas vietnē http: // localhost:% s"% ports)
httpd.serve_forever ()
# Apturēja serveri
izņemot tastatūru pārtraukt:
httpd.server_close ()
drukāt ("Serveris ir apturēts.")

Rezultāts

Pēc iepriekš minētā skripta izpildīšanas bez komandrindas argumenta vērtības tiks parādīta šāda izeja.

Šāda izeja parādīsies, ja palaidīsit HTML failu, kas izveidots iepriekšējā darbībā no tīmekļa servera.

PyCharm redaktora izvēlnē Run (Palaist) atveriet konfigurācijas dialoglodziņu, lai iestatītu komandrindas argumenta vērtību. Parametru lauks tiek izmantots, lai iestatītu komandrindas argumentu, un šeit kā argumenta vērtība tiek iestatīts 3000.

Šī opcija parādīsies, ja pēc argumenta vērtības iestatīšanas vēlreiz palaidīsit skriptu.

3. piemērs: palaidiet tīmekļa serveri ar HTML failu

Izveidojiet pitona failu ar šo skriptu, lai palaistu tīmekļa serveri, definējot HTML failu pamata URL. Skripta sākumā ir definēts resursdatora nosaukums un porta numurs. PythonServer klase skriptā ir definējusi HTML faila parādīšanu pārlūkprogrammā, kad sāk darboties tīmekļa serveris.

# Importējiet servera moduli
importēt http.serveris
# Iestatiet resursdatora nosaukumu
HOST = "localhost"
# Iestatiet porta numuru
OSTA = 4000
# Definējiet klasi, lai parādītu tīmekļa servera rādītāja lapu
klases PythonServer (http.serveris.SimpleHTTPRequestHandler):
def do_GET (pats):
ja pats.ceļš == '/':
pats.ceļš = 'testHTML.html '
atgriezties http.serveris.Vienkāršs HTTPRequestHandler.do_GET (pats)
# Deklarēt klases objektu
webServer = http.serveris.HTTPServer ((HOST, PORT), PythonServer)
# Izdrukājiet tīmekļa servera URL
drukāt ("Serveris sāka http: //% s:% s"% (HOST, PORT))
mēģiniet:
# Palaidiet tīmekļa serveri
tīmekļa serveris.serve_forever ()
izņemot tastatūru pārtraukt:
# Pārtrauciet tīmekļa serveri
tīmekļa serveris.server_close ()
drukāt ("Serveris ir apturēts.")

Rezultāts

Izpildot iepriekš minēto skriptu, parādīsies šāda izeja.

Šī pārlūkprogrammā tiks parādīta šī lapa, ja izpildīs tīmekļa servera pārlūkprogrammas pamata URL.

Secinājums

Dažādi Web serveru ieviešanas veidi, izmantojot http. serveris Šajā apmācībā ir parādīts modulis, lai palīdzētu Python lietotājiem izveidot vienkāršu tīmekļa serveri Python.

Kā mainīt peles un skārienpaliktņu ritināšanas virzienu operētājsistēmā Windows 10
Pele un SkārienpaliktnisTas ne tikai padara skaitļošanu vienkāršu, bet arī efektīvāku un mazāk laikietilpīgu. Mēs nevaram iedomāties dzīvi bez šīm ier...
Kā mainīt peles rādītāja un kursora izmēru, krāsu un shēmu operētājsistēmā Windows 10
Peles rādītājs un kursors operētājsistēmā Windows 10 ir ļoti svarīgi operētājsistēmas aspekti. To var teikt arī par citām operētājsistēmām, tāpēc pati...
Bezmaksas un atvērtā koda spēļu dzinēji Linux spēļu izstrādei
Šis raksts aptvers bezmaksas un atvērtā koda spēļu motoru sarakstu, kurus var izmantot, lai izstrādātu 2D un 3D spēles Linux. Šādu spēļu dzinēju ir da...