python3之http.server模塊用法
有時(shí)候我們需要快速地搭建一個(gè)web服務(wù),這時(shí)我們就可以使用python里面的http.server模塊搭建http服務(wù)器。
實(shí)現(xiàn)的方式有以下幾種。
BaseHTTPServer模塊在Python3中已被合并到http.server
1. 命令行啟動(dòng)
python -m http.server 80 #pyhton3中啟動(dòng)方式,開(kāi)啟的端口為80 python -m SimpleHTTPServer 8080 #python2啟動(dòng)方式
這種是常用的方式,很簡(jiǎn)單。
2. 代碼調(diào)用
from http.server import HTTPServer, BaseHTTPRequestHandler data = {'result': 'this is a test'} host = ('localhost', 8888) class Resquest(BaseHTTPRequestHandler): timeout = 5 server_version = "Apache" #設(shè)置服務(wù)器返回的的響應(yīng)頭 def do_GET(self): self.send_response(200) self.send_header("Content-type","text/html") #設(shè)置服務(wù)器響應(yīng)頭 self.send_header("test1","This is test!") #設(shè)置服務(wù)器響應(yīng)頭 self.end_headers() buf = '''<!DOCTYPE HTML> <html> <head> <title>Get page</title> </head> <body> <form action="post_page" method="post"> username: <input type="text" name="username" /><br /> password: <input type="text" name="password" /><br /> <input type="submit" value="POST" /> </form> </body> </html>''' self.wfile.write(buf.encode()) #里面需要傳入二進(jìn)制數(shù)據(jù),用encode()函數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)據(jù) #設(shè)置響應(yīng)body,即前端頁(yè)面要展示的數(shù)據(jù) def do_POST(self): path = self.path print(path) #獲取post提交的數(shù)據(jù) datas = self.rfile.read(int(self.headers['content-length'])) #固定格式,獲取表單提交的數(shù)據(jù) #datas = urllib.unquote(datas).decode("utf-8", 'ignore') self.send_response(200) self.send_header("Content-type","text/html") #設(shè)置post時(shí)服務(wù)器的響應(yīng)頭 self.send_header("test","This is post!") self.end_headers() html = '''<!DOCTYPE HTML> <html> <head> <title>Post page</title> </head> <body> Post Data:%s <br /> Path:%s </body> </html>''' %(datas,self.path) self.wfile.write(html.encode()) #提交post數(shù)據(jù)時(shí),服務(wù)器跳轉(zhuǎn)并展示的頁(yè)面內(nèi)容 if __name__ == '__main__': server = HTTPServer(host, Resquest) print("Starting server, listen at: %s:%s" % host) server.serve_forever()
然后我們可以啟動(dòng)http服務(wù)
訪問(wèn)一下,并提交數(shù)據(jù)看一下
獲取到post數(shù)據(jù)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python機(jī)器學(xué)習(xí)基礎(chǔ)線性回歸與嶺回歸算法詳解
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)基礎(chǔ)線性回歸與嶺回歸算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11Python中的np.vstack()和np.hstack()詳解
這篇文章主要介紹了np.vstack()和np.hstack(),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04用Python實(shí)現(xiàn)2024年春晚劉謙魔術(shù)
昨晚春晚上劉謙的兩個(gè)魔術(shù)表演都非常精彩,忍不住用編程去模擬一下這個(gè)過(guò)程,所以本文給大家用Python實(shí)現(xiàn)2024年春晚劉謙魔術(shù),文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02使用Python簡(jiǎn)單實(shí)現(xiàn)去除彩色水印
這篇文章主要為大家詳細(xì)介紹了如何使用Python簡(jiǎn)單實(shí)現(xiàn)去除彩色水印效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02Python實(shí)現(xiàn)的HMacMD5加密算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的HMacMD5加密算法,簡(jiǎn)單說(shuō)明了HMAC-MD5加密算法的概念、原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)HMAC-MD5加密算法的相關(guān)操作技巧,,末尾還附帶了Java實(shí)現(xiàn)HMAC-MD5加密算法的示例,需要的朋友可以參考下2018-04-04python實(shí)現(xiàn)音樂(lè)播放和下載小程序功能
這篇文章主要介紹了python實(shí)現(xiàn)音樂(lè)播放和下載小程序功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04