Ang pangunahing gawain ng webserver ay upang hawakan ang mga kahilingan sa HTTP mula sa client. Naghihintay ito para sa mga kahilingan sa HTTP na nagmumula sa partikular na IP address at numero ng port, humahawak sa kahilingan, at ibabalik ang tugon ng kliyente. Ginagamit ng sawa ang SimpleHTTPServer module upang lumikha ng isang web server agad at madaling ihatid ang nilalaman ng file mula sa server. Maaari itong magamit para sa pagbabahagi ng file din. Para sa mga ito, kailangan mong paganahin ang module na ito sa lokasyon ng mga maibabahaging mga file. Ang modyul na ito ay kasama ng tagasalin ng Python. Hindi mo kailangang i-install ito. Dahil ang modyul na ito ay isinama sa http.server module sa python3, kaya kailangan mong tumakbo http.server upang patakbuhin ang webserver sa python3. Paano magagamit ang web server upang mahawakan ang kahilingan sa HTTP at magbahagi ng mga file, naipakita sa tutorial na ito.
Patakbuhin ang Web Server mula sa terminal
Patakbuhin ang sumusunod na utos upang patakbuhin ang webserver mula sa terminal. Kung walang natukoy na numero ng port sa utos, magsisimula ang webserver sa 8000 port bilang default.
$ python3 -m http.server
Lilitaw ang sumusunod na output kung ang webserver ay nasimulan nang maayos. Ang CTRL + C ay pinindot upang ihinto ang server.
Patakbuhin ang sumusunod na utos upang simulan ang webserver sa 8080 port.
$ python3 -m http.server 8080
Lilitaw ang sumusunod na output kung ang webserver ay nagsimula sa 8080 port.
Patakbuhin ang Web Server gamit ang script ng Python
Patakbuhin ang mga sumusunod na utos upang lumikha ng isang folder na pinangalanan Web at pumunta sa folder. Ang lahat ng mga file ng script at HTML file ng tutorial na ito ay malilikha sa loob ng folder na ito.
$ mkdir web$CDWeb
Lumikha ng isang file na HTML na pinangalanan testHTML.html sa loob ng Web folder kasama ang sumusunod na script. Ihahatid ang file na ito mula sa webserver sa paglaon.
testHTML.html
< html >< ulo >
< pamagat >
Subukan ang Python Web Server
</ pamagat >
</ ulo >
< katawan >
< gitna >
< img src='logo.jpeg' lahat ng bagay='Hindi nahanap ang imahe'/>
< h2 style='kulay: berde'>Pagbati! Ang iyong Web Server ay matagumpay na tumatakbo.</ h2 >
< p >Pagbisita< sa href='www.linuxhint.com'>LinuxHint.com</ sa >para sa higit pang mga tutorial sa Python</ p >
</ gitna >
</ katawan >
</ html >
Halimbawa-1: Patakbuhin ang webserver sa tukoy na numero ng port
Lumikha ng isang python file na may sumusunod na script upang patakbuhin ang webserver sa 8008 port. http.server na-import ang module upang patakbuhin ang webserver, at ang SocketServer na-import ang module upang hawakan ang kahilingan sa HTTP na nagmula sa 8080 port. Isang bagay na pinangalanan Handler ay nilikha upang hawakan ang mga kahilingan sa HTTP. magpakailanman () ang pagpapaandar ay tinawag upang patakbuhin ang webserver. Walang kundisyon sa pagwawakas naidagdag sa script. Kaya, ang script ay bubuo ng isang error kapag ang gumagamit ay sumusubok na itigil ang server.
# I-import ang module ng serverangkathttp.server
# Mag-import ng module ng SocketServer
angkatsocketserver
# Itakda ang numero ng port
daungan= 8080
# Lumikha ng bagay para sa paghawak ng mga kahilingan sa HTTP
Handler=http.server.SimpleHTTPRequestHandler
# Patakbuhin ang server magpakailanman upang hawakan ang mga kahilingan sa HTTP
kasama sisocketserver.TCPServer((',daungan),Handler) bilanghttpd:
mag-print(Tumatakbo ang 'Web Server sa http: // localhost:% s'% port)
httpd.maglingkod_pauna()
Paglabas
Ang sumusunod na output ay lilitaw pagkatapos ipatupad ang script sa itaas.
Ipapakita ang listahan ng mga file at folder ng lokasyon ng script kung ang sumusunod na URL ay naisakatuparan mula sa browser.
Kung pinindot ng gumagamit ang CTRL + C mula sa terminal o pinindot ang stop button mula sa PyCharm editor, ipapakita ang sumusunod na mensahe ng error. Nalutas ang problemang ito sa susunod na halimbawa ng tutorial na ito.
Halimbawa-2: Patakbuhin ang webserver kasama ang numero ng port na tinukoy ng command-line
Lumikha ng isang python file na may sumusunod na script upang magpatakbo ng isang web server sa partikular na port kung bibigyan ng argument ng linya ng utos ang numero ng port; kung hindi man, 5000 ang gagamitin bilang default port. sys ang module ay na-import sa script upang mabasa ang mga halaga ng argument ng linya ng utos. subukan-maliban ang block ay naidagdag sa script upang hawakan ang error kapag ang gumagamit ay sumusubok na itigil ang server. Kung ang KeyboardInterrupt na pagbubukod ay lilitaw pagkatapos patakbuhin ang server, pagkatapos ay ang isara () tatawagin ang pagpapaandar upang ihinto ang webserver.
# I-import ang module ng serverangkathttp.server
# Mag-import ng module ng SocketServer
angkatsocketserver
# Mag-import ng module ng sys
angkat sys
subukan mo:
# Itakda ang numero ng port
kung sys.argv[1:]:
daungan= int(sys.argv[1])
iba pa:
daungan= 5000
# Itakda ang IP address
address ng server= ('127.0.0.1',daungan)
# Lumikha ng bagay para sa paghawak ng mga kahilingan sa HTTP
Handler=http.server.SimpleHTTPRequestHandler
# Patakbuhin ang web server magpakailanman upang hawakan ang mga kahilingan sa HTTP
kasama sisocketserver.TCPServer((',daungan),Handler) bilanghttpd:
mag-print(Tumatakbo ang 'Web Server sa http: // localhost:% s'% port)
httpd.maglingkod_pauna()
# Tumigil sa server
maliban sa Makagambala sa Keyboard:
httpd.server_close()
mag-print('Ang server ay tumigil.')
Paglabas
Ang sumusunod na output ay lilitaw pagkatapos ipatupad ang script sa itaas nang walang halaga ng argument ng linya ng utos.
Lilitaw ang sumusunod na output kung patakbuhin ang HTML file na nilikha sa nakaraang hakbang mula sa webserver.
Buksan ang dialog box ng pagsasaayos mula sa Run menu ng PyCharm editor upang maitakda ang halaga ng argument ng linya ng utos. Ginagamit ang patlang ng mga parameter upang maitakda ang argument ng linya ng utos, at ang 3000 ay itinakda dito bilang halaga ng argument.
Lilitaw ang sumusunod na output kung patakbuhin mong muli ang script pagkatapos itakda ang halaga ng argument.
Halimbawa-3: Patakbuhin ang webserver kasama ang HTML file
Lumikha ng isang python file na may sumusunod na script upang patakbuhin ang webserver sa pamamagitan ng pagtukoy sa HTML file para sa batayang URL. Ang hostname at ang numero ng port ay tinukoy sa simula ng script. PythonServer tinukoy ng klase sa script upang ipakita ang HTML file sa browser kapag nagsimulang tumakbo ang web server.
# I-import ang module ng serverangkathttp.server
# Itakda ang hostname
HOST= 'localhost'
# Itakda ang numero ng port
PORT= 4000
# Tukuyin ang klase upang maipakita ang pahina ng index ng web server
klasePythonServer(http.server.SimpleHTTPRequestHandler):
defgawin_GET(sarili):
kung sarili.landas == '/':
sarili.landas = 'testHTML.html'
bumalik kahttp.server.SimpleHTTPRequestHandler.gawin_GET(sarili)
# Ipahayag ang bagay ng klase
webServer=http.server.HTTPServer((HOST,PORT),PythonServer)
# I-print ang URL ng webserver
mag-print('Nagsimula ang server http: //% s:% s'%(HOST,PORT))
subukan mo:
# Patakbuhin ang web server
webServer.maglingkod_pauna()
maliban sa Makagambala sa Keyboard:
# Itigil ang web server
webServer.server_close()
mag-print('Ang server ay tumigil.')
Paglabas
Ang sumusunod na output ay lilitaw na isinasagawa ang script sa itaas.
Ang sumusunod na pahina ay lilitaw sa browser kung ang base URL ng browser ng webserver ay nagpapatupad.
Konklusyon
Ang iba't ibang mga paraan ng pagpapatupad ng mga web server sa pamamagitan ng paggamit http. server Ipinakita ang module sa tutorial na ito upang matulungan ang mga gumagamit ng sawa na lumikha ng isang simpleng web server sa Python.