python3之http.server模塊用法
更新時間:2023年09月05日 16:55:11 作者:~Echo
這篇文章主要介紹了python3之http.server模塊用法,具有很好的參考價值,希望對大家有所幫助,
有時候我們需要快速地搭建一個web服務,這時我們就可以使用python里面的http.server模塊搭建http服務器。
實現的方式有以下幾種。
BaseHTTPServer模塊在Python3中已被合并到http.server
1. 命令行啟動
python -m http.server 80 #pyhton3中啟動方式,開啟的端口為80 python -m SimpleHTTPServer 8080 #python2啟動方式
這種是常用的方式,很簡單。
2. 代碼調用
from http.server import HTTPServer, BaseHTTPRequestHandler data = {'result': 'this is a test'} host = ('localhost', 8888) class Resquest(BaseHTTPRequestHandler): timeout = 5 server_version = "Apache" #設置服務器返回的的響應頭 def do_GET(self): self.send_response(200) self.send_header("Content-type","text/html") #設置服務器響應頭 self.send_header("test1","This is test!") #設置服務器響應頭 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()) #里面需要傳入二進制數據,用encode()函數轉換為二進制數據 #設置響應body,即前端頁面要展示的數據 def do_POST(self): path = self.path print(path) #獲取post提交的數據 datas = self.rfile.read(int(self.headers['content-length'])) #固定格式,獲取表單提交的數據 #datas = urllib.unquote(datas).decode("utf-8", 'ignore') self.send_response(200) self.send_header("Content-type","text/html") #設置post時服務器的響應頭 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數據時,服務器跳轉并展示的頁面內容 if __name__ == '__main__': server = HTTPServer(host, Resquest) print("Starting server, listen at: %s:%s" % host) server.serve_forever()
然后我們可以啟動http服務
訪問一下,并提交數據看一下
獲取到post數據
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python中的np.vstack()和np.hstack()詳解
這篇文章主要介紹了np.vstack()和np.hstack(),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04