如果是简单搭建一个HTTP服务,业务不太复杂的话,是不需要使用 Flask 和 Django 的。使用自带的http.server模块就可以啦。我用一个例子讲讲python怎么做一个简单的web服务,首先我先写服务逻辑方法,文件名为heaps.py,这个代码来自我的数学算法专栏,是全排列的Heap算法,代码如下:
def recursive(array, last, result):
if last == 0:
result.append(array[:])
return
for i in range(0, last + 1):
recursive(array, last - 1, result)
if last & 1 == 0:
array[0], array[last] = array[last], array[0]
else:
array[i], array[last] = array[last], array[i]
def permutations(array):
result = []
recursive(array, len(array) - 1, result)
return result
然后再写HTTP服务代码:
import http.server
import http.server
import socketserver
from heap import permutations
class Request(http.server.BaseHTTPRequestHandler):
def do_POST(self):
datas = self.rfile.read(int(self.headers['content-length']))
result = permutations(eval(datas))
self.send_response(200)
self.send_header("Content-type", "text/html") # 设置post时服务器的响应头
self.end_headers()
self.wfile.write(str(result).encode())
if __name__ == '__main__':
PORT = 8080
with socketserver.TCPServer(("", PORT), Request) as httpd:
print("serving at port", PORT)
httpd.serve_forever()
最后使用Post-Man测试,成功!