① python 怎麼搭建簡單的web伺服器
利用Python自帶的包可以建立簡單的web伺服器。在DOS里cd到准備做伺服器根目錄的路徑下,輸入命令:
python -m Web伺服器模塊 [埠號,默認8000]
例如:
python -m SimpleHTTPServer 8080
然後就可以在瀏覽器中輸入
h ttp://loca lhost:埠號/路徑
來訪問伺服器資源。
例如:
h ttp://local host:808 0/index.h tm(當然index.htm文件得自己創建)
其他機器也可以通過伺服器的IP地址來訪問。
這里的「Web伺服器模塊」有如下三種:
BaseHTTPServer: 提供基本的Web服務和處理器類,分別是HTTPServer和BaseHTTPRequestHandler。
SimpleHTTPServer: 包含執行GET和HEAD請求的SimpleHTTPRequestHandler類。
CGIHTTPServer: 包含處理POST請求和執行CGIHTTPRequestHandler類。
② 使用python啟動了一個simplehttp server服務,跑完任務後怎麼樣關掉這個服務的
os.popen()可以實現一個「管道」,從這個命令獲取的值可以繼續被調用。而os.system不同,它只是調用,調用完後自身退出,可能返回個0吧
懂了吧,所以如果你不需要 os.popen('start "" python -m SimpleHTTPServer 80')這個命令的返回值,那就直接用os.system好了。
③ 如何用PYTHON的CGIHTTPSERVER模塊模擬POST請求
簡單來說它是一個應用層的協議,它允許將超文本標記語言(HTML)文檔從Web伺服器傳送到客戶端的瀏覽器。HTTP是一個無狀態的協議
即同一個客戶端的這次請求和上次請求是沒有對應關系,對http伺服器來說,它並不知道這兩個請求來自同一個客戶端,為了解決這個問題,Web程序引入了Cookie機制來維護狀態。
④ python 實現一個httpserver重寫get方法的問題
前面兩個操作是同時對一個文件進行讀和寫吧,最好換一個文件名來寫
⑤ python的simplehttpserver模塊怎麼指定網頁目錄
SimpleHTTPServer:包含執行GET和HEAD請求的SimpleHTTPRequestHandler類。
通過下面命令我們創建了HTTP服務,默認使用8000埠號監聽。如果文件夾下有index.html,那麼這個文件就會成為一個默認頁,如果沒有這個文件,那麼,目錄列表就會顯示出來。
⑥ 如何實現Python多進程http伺服器
埠只能綁定一個進程。
1 換成線程實現 SocketServer.ThreadingTCPServer
2 主進程調度分發。主進程收到埠請求後通過進程間通信讓其他進程工作。
我想要用 python 的 multiprocessing 模塊實現一個多進程多線程的 http 伺服器,伺服器會使用進程池 Pool 創建多個子進程,然後每個子進程再用 socketserver 創建多線程的 http 伺服器,但是現在我遇到一個問題,就是伺服器運行以後,只有第一個子進程可以處理 http 連接,如何做到讓每一個子進程都可以處理連接?
備註:通過 getpid 可以看到每次接受請求的都是同一個子進程
# Python 3import os, socketserver, signal, sysfrom multiprocessing import Poolclass MyTCPHandler(socketserver.BaseRequestHandler):
def handle(self):
self.data = self.request.recv(1024)
respone = b'HTTP/1.1 200 OK\r\n\r\nOK%d' % os.getpid()
self.request.sendall(respone)def httpd_task():
socketserver.ThreadingTCPServer.allow_reuse_address = True
server = socketserver.ThreadingTCPServer(('0.0.0.0', 80), MyTCPHandler) try:
server.serve_forever() except: pass
server.server_close()if __name__=='__main__':
p = Pool(4) for i in range(4):
p.apply_async(httpd_task)
p.close()
p.join()
⑦ 如何用python搭建一個最簡單的Web伺服器
用Python建立最簡單的web伺服器
利用Python自帶的包可以建立簡單的web伺服器。在DOS里cd到准備做伺服器根目錄的路徑下,輸入命令:
python -mWeb伺服器模塊[埠號,默認8000]
例如:
python -m SimpleHTTPServer 8080
然後就可以在瀏覽器中輸入
http://localhost:埠號/路徑
來訪問伺服器資源。
例如:
http://localhost:8080/index.htm(當然index.htm文件得自己創建)
其他機器也可以通過伺服器的IP地址來訪問。
這里的「Web伺服器模塊」有如下三種:
BaseHTTPServer: 提供基本的Web服務和處理器類,分別是HTTPServer和BaseHTTPRequestHandler。
SimpleHTTPServer: 包含執行GET和HEAD請求的SimpleHTTPRequestHandler類。
CGIHTTPServer: 包含處理POST請求和執行CGIHTTPRequestHandler類。
⑧ 請問python建立simplehttpserver伺服器的時候為什麼會卡住
正常,這才是伺服器
首先確保裝了Python,我裝的是2.x版本,對了,我的操作系統是WIN7,其實對於Python來說,什麼操作系統並不重要。Python內置了一個簡單的HTTP伺服器,只需要在命令行下面敲一行命令,一個HTTP伺服器就起來了:
python -m SimpleHTTPServer 80
後面的80埠是可選的,不填會採用預設埠8000。注意,這會將當前所在的文件夾設置為默認的Web目錄,試著在瀏覽器敲入本機地址:
如果當前文件夾有index.html文件,會默認顯示該文件,否則,會以文件列表的形式顯示目錄下所有文件。這樣已經實現了最基本的文件分享的目的,你可以做成一個腳本,再建立一個快捷方式,就可以很方便的啟動文件分享了。如果有更多需求,完全可以根據自己需要定製,具體的請參見官方文檔SimpleHTTPServer,或者直接看源碼。我拷貝一段,方便參考:
import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
如果你想改變埠號,你可以使用如下的命令:
python -m SimpleHTTPServer 8080
如果你只想讓這個HTTP伺服器服務於本地環境,那麼,你需要定製一下你的Python的程序,下面是一個示例:
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
if sys.argv[1:]:
port = int(sys.argv[1])
else:
port = 8000
server_address = ('127.0.0.1', port)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
注意:所有的這些東西都可以在 Windows 或 Cygwin 下工作。
您可能感興趣的文章:
⑨ python httpserver怎麼處理跨域
os.popen()可以實現一個「管道」,從這個命令獲取的值可以繼續被調用。而os.system不同,它只是調用,調用完後自身退出,可能返回個0吧 懂了吧,所以如果你不需要 os.popen('start "" python -m SimpleHTTPServer 80')這個命令的返回值