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ā.
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
Pārbaudiet Python tīmekļa serveri
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 moduliimportē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.
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 moduliimportē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 moduliimportē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.