Paano Gumamit ng Python SimpleHTTPServer

How Use Python Simplehttpserver



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 server

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

http: // localhost: 8080

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 server

angkathttp.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 server

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