您好,登錄后才能下訂單哦!
小編給大家分享一下Python Web程序搭建Web服務器的案例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Python語言Web服務的具體實現:第一個Python Web程序——簡單的Web服務器。
與其它Web后端語言不同,Python語言需要自己編寫Web服務器。
如果你使用一些現有的框架的話,可以省略這一步;
如果你使用Python CGI編程的話,也可以省略這一步;
用Python建立最簡單的web服務器
利用Python自帶的包可以建立簡單的web服務器。在DOS里cd到準備做服務器根目錄的路徑下,輸入命令:
python -m Web服務器模塊 [端口號,默認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類。
自定義處理程序
Google在http://chart.apis.google.com 上提供了一個將表單數據自動轉換為圖表的服務。不過,該服務很難交互, 因為你需要將數據作為查詢放到URL中。此程序為一種數據格式提供了更好的的接口: 給定一小段文本,它將調用圖表服務器來生成二維碼(QR碼),這是一種編碼文本的點格矩陣。 該圖像可被你的手機攝像頭捕獲,并解釋為一個字符串,比如URL, 這樣就免去了你在狹小的手機鍵盤上鍵入URL的麻煩。
以下為完整的程序:
import os #Python的標準庫中的os模塊包含普遍的操作系統功能 import re #引入正則表達式對象 import urllib #用于對URL進行編解碼 from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler #導入HTTP處理相關的模塊 #自定義處理程序,用于處理HTTP請求 class TestHTTPHandler(BaseHTTPRequestHandler): #處理GET請求 def do_GET(self): #頁面輸出模板字符串 templateStr = ''' <html> <head> <title>QR Link Generator</title> </head> <body> %s <br> <br> <form action="/qr" name=f method="GET"><input maxLength=1024 size=70 name=s value="" title="Text to QR Encode"><input type=submit value="Show QR" name=qr> </form> </body> </html> ''' # 將正則表達式編譯成Pattern對象 pattern = re.compile(r'/qr\?s=([^\&]+)\&qr=Show\+QR') # 使用Pattern匹配文本,獲得匹配結果,無法匹配時將返回None match = pattern.match(self.path) qrImg = '' if match: # 使用Match獲得分組信息 qrImg = '<img src="http://chart.apis.google.com/chart?chs=300x300&cht=qr&choe=UTF-8&chl=' + match.group(1) + '" /><br />' + urllib.unquote(match.group(1)) self.protocal_version = 'HTTP/1.1' #設置協議版本 self.send_response(200) #設置響應狀態碼 self.send_header("Welcome", "Contect") #設置響應頭 self.end_headers() self.wfile.write(templateStr % qrImg) #輸出響應內容 #啟動服務函數 def start_server(port): http_server = HTTPServer(('', int(port)), TestHTTPHandler) http_server.serve_forever() #設置一直監聽并接收請求 os.chdir('static') #改變工作目錄到 static 目錄 start_server(8000) #啟動服務,監聽8000端口
運行訪問
我這里將上面上代碼保存為:C:\Python\webserver\server1.py,使用UTF-8編碼;
打開命令行,切換到 C:\Python\webserver\ 目錄,
執行:python server1.py
可能會彈出防火墻警告,點擊允許訪問。
在瀏覽器中訪問,查看效果,打開瀏覽器,輸入:http://localhost:8000/,結果如下圖:
在文本框中輸入一個URL,,點擊Show QR,會生成一張二維碼的圖片
掃一掃這張二維碼看看吧
小結
與其它Web后端語言不同,Python語言需要自己編寫Web服務器;
但與Go語言相比,Python稍微有些難以上手。
這里只是編寫運行一個簡單的例子,看看效果找找感覺。
雖然Python的大名已經知道很久,但最近才真正的接觸,文中有不對的地方,有更好的方法還請前輩們多多指教!
2017-12-12更新
此示例的代碼在 Eclipse+pydev 環境中打開存在縮進問題,需要 大家注意:
需要調了一下格式 就把下圖紅框中的代碼整體后移了一下:
以上是“Python Web程序搭建Web服務器的案例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。