『壹』 python的simplehttpserver模塊怎麼指定網頁目錄
SimpleHTTPServer:包含執行GET和HEAD請求的SimpleHTTPRequestHandler類。
通過下面命令我們創建了HTTP服務,默認使用8000埠號監聽。如果文件夾下有index.html,那麼這個文件就會成為一個默認頁,如果沒有這個文件,那麼,目錄列表就會顯示出來。
『貳』 請問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的BaseHTTPServer模塊怎樣接收post請求能給出,把接收到的POST數據輸...
#!/usr/bin/python
#encoding=utf-8
'''
基於BaseHTTPServer的http server實現,包括get,post方法,get參數接收,post參數接收。
'''
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import io,shutil
import urllib
import os, sys
class MyRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
mpath,margs=urllib.splitquery(self.path) # ?分割
self.do_action(mpath, margs)
def do_POST(self):
mpath,margs=urllib.splitquery(self.path)
datas = self.rfile.read(int(self.headers['content-length']))
self.do_action(mpath, datas)
def do_action(self, path, args):
self.outputtxt(path + args )
def outputtxt(self, content):
#指定返回編碼
enc = "UTF-8"
content = content.encode(enc)
f = io.BytesIO()
f.write(content)
f.seek(0)
self.send_response(200)
self.send_header("Content-type", "text/html; charset=%s" % enc)
self.send_header("Content-Length", str(len(content)))
self.end_headers()
shutil.fileobj(f,self.wfile)
『肆』 python httpserver怎麼處理跨域
os.popen()可以實現一個「管道」,從這個命令獲取的值可以繼續被調用。而os.system不同,它只是調用,調用完後自身退出,可能返回個0吧 懂了吧,所以如果你不需要 os.popen('start "" python -m SimpleHTTPServer 80')這個命令的返回值
『伍』 使用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找不到BaseHTTPServer
首先表示本人不知道這個模塊功能,但是針對你這情況,以下建
議可能能幫助你:
BaseHTTPServer是一個模塊,anaconda可能不包含這個模塊,所以你要自己安裝以下,但是我這邊pip安裝失敗,pipy可能沒有收錄。
然後我查看了官方文檔,文檔上說:
Note:.serverinPython3.
Python3.
翻譯:注意BaseHTTPServer模塊已經合並到http.server在Python 3中。版本2工具會自動適應進口時將消息轉換為Python 3。
所以說你這需要pip install 安裝一下包,但是具體哪個包,我也搞不清額
『捌』 linux下終端python -m SimpleHTTPServer 80沒用
請使用python3
python3 -m http.server
代替
python3 內置
『玖』 python的BaseHTTPServer模塊,WEB服務啟動後,怎樣讓GET請求中,有指定值就停...
有一個force_stop()的方法啊,判斷get的參數,如果是指定值得話就調用force_stop就可以了。