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)方式,開啟的端口為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ù)

訪問一下,并提交數(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-11
Python中的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è)過程,所以本文給大家用Python實(shí)現(xiàn)2024年春晚劉謙魔術(shù),文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
使用Python簡(jiǎn)單實(shí)現(xiàn)去除彩色水印
這篇文章主要為大家詳細(xì)介紹了如何使用Python簡(jiǎn)單實(shí)現(xiàn)去除彩色水印效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
Python實(shí)現(xiàn)的HMacMD5加密算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的HMacMD5加密算法,簡(jiǎn)單說明了HMAC-MD5加密算法的概念、原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)HMAC-MD5加密算法的相關(guān)操作技巧,,末尾還附帶了Java實(shí)現(xiàn)HMAC-MD5加密算法的示例,需要的朋友可以參考下2018-04-04
python實(shí)現(xiàn)音樂播放和下載小程序功能
這篇文章主要介紹了python實(shí)現(xiàn)音樂播放和下載小程序功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

