我有一个Python服务器:
from http.server import BaseHTTPRequestHandler, HTTPServer
class Server(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write("Hello, World!".encode("utf-8"))
def do_POST(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write("POST!".encode("utf-8"))
webServer = HTTPServer(("", serverPort), Server)
print(f"Server started at http://localhost:{serverPort}")
try:
webServer.serve_forever()
except KeyboardInterrupt:
webServer.server_close()
print("Server stopped.")
但是这个服务器是同步工作的。
是否有可能创建一个异步HTTP服务器而不使用现成的Web框架? 如果可以,怎么做?
我尝试过以下方法:
webServer = ThreadingHTTPServer(("", serverPort), Server)
print(f"Server started at http://localhost:{serverPort}")
改为这样:
webServer = HTTPServer(("", serverPort), Server)
print(f"Server started at http://localhost:{serverPort}")
但我不确定它是否正常工作。
http.server
和aiohttp
处于同一水平线。两者都只是Web服务器,而不是Web框架。如果您不想使用aiohttp
,那么就不应该使用http.server
。 - furasaiohttp
不是web框架
,而是像http.server
一样的http服务器
。也许你不能使用任何外部模块,那么你就必须使用标准的async
或asyncio从头开始编写。 - furas