别再傻傻分不清!TOPS、FLOPS、MACC到底谁在决定你的AI芯片性能?
2026/6/10 6:07:08
Python 启动 HTTP 服务主要依赖http.server模块(在 Python 3 中)或SimpleHTTPServer模块(在 Python 2 中)。
我们将主要以更现代的Python 3为例进行讲解。
这是最常用、最快捷的用法,无需编写任何 Python 代码。它会把你当前所在的目录作为网站根目录,启动一个文件服务器。
打开你的终端(或 Windows 的 CMD/PowerShell),进入你想要共享的文件夹,然后运行:
# 默认使用 8000 端口python -m http.server# 你也可以指定一个端口,比如 8888python -m http.server8888# 如果你想让局域网内的其他设备也能访问,可以绑定到 0.0.0.0python -m http.server --bind0.0.0.08888启动后,你会看到类似Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...的提示。
现在,打开浏览器访问:
http://localhost:8000或http://127.0.0.1:8000http://<你的电脑IP地址>:8000你会在浏览器上看到当前目录的文件和文件夹列表,可以点击下载。
如果你仍在使用 Python 2,命令稍有不同:
# 默认使用 8000 端口python -m SimpleHTTPServer# 指定端口 8888python -m SimpleHTTPServer8888如果你需要更多的控制,或者想把 HTTP 服务嵌入到你的应用程序中,可以在 Python 脚本中启动它。
这是一个基本的脚本,功能和命令行版本完全一样。
importhttp.serverimportsocketserver# 定义端口号PORT=8000# 创建一个简单的请求处理器,SimpleHTTPRequestHandler 会处理 GET 和 HEAD 请求,# 并将当前目录下的文件作为响应。Handler=http.server.SimpleHTTPRequestHandler# 使用 with 语句可以确保服务器在程序结束时被正确关闭withsocketserver.TCPServer(("",PORT),Handler)ashttpd:print(f"服务器正在运行,端口号为:{PORT}")print(f"请在浏览器中访问 http://localhost:{PORT}")# 启动服务器,它会一直运行,直到你手动停止(例如按 Ctrl+C)try:httpd.serve_forever()exceptKeyboardInterrupt:print("\n服务器正在关闭...")httpd.server_close()如何运行:
my_server.py。python my_server.py。http.server最强大的地方在于你可以自定义如何处理请求。默认的SimpleHTTPRequestHandler只能提供文件服务,但我们可以通过继承BaseHTTPRequestHandler来编写自己的逻辑。
例如,创建一个简单的 API,当访问/api时返回一个 JSON 数据。
importhttp.serverimportjson# 定义主机和端口HOST="localhost"PORT=8000# 自定义请求处理器类,继承自 BaseHTTPRequestHandlerclassMyAPIHandler(http.server.BaseHTTPRequestHandler):# 处理 GET 请求defdo_GET(self):# 路由:根据请求的路径 (self.path) 决定做什么ifself.path=='/':# 如果是根路径,就返回一个欢迎页面self.send_response(200)self.send_header('Content-type','text/html; charset=utf-8')self.end_headers()message="<h1>欢迎来到我的自定义服务器!</h1><p>尝试访问 <a href='/api'>/api</a></p>"self.wfile.write(message.encode('utf-8'))elifself.path=='/api':# 如果是 /api 路径,就返回一个 JSON 数据self.send_response(200)self.send_header('Content-type','application/json')self.end_headers()# 准备要返回的 JSON 数据response_data={'status':'success','message':'Hello from the API!','data':[1,2,3]}# 将 Python 字典转换为 JSON 字符串,并编码为字节流self.wfile.write(json.dumps(response_data).encode('utf-8'))else:# 如果路径未找到,返回 404self.send_error(404,"页面未找到 (Page Not Found)")# --- 启动服务器的代码 ---if__name__=="__main__":# 创建一个 TCP 服务器实例,绑定地址和自定义的处理器server=http.server.TCPServer((HOST,PORT),MyAPIHandler)print(f"服务器启动于 http://{HOST}:{PORT}")try:# 启动服务器,永久运行server.serve_forever()exceptKeyboardInterrupt:print("\n服务器正在关闭...")server.server_close()print("服务器已关闭。")如何运行和测试:
api_server.py并运行python api_server.py。http://localhost:8000/会看到欢迎信息。http://localhost:8000/api会看到 JSON 响应。http://localhost:8000/other会得到 404 错误。http.server默认是单线程的,一次只能处理一个请求。如果一个请求耗时很长,其他请求必须排队等待。| 用途 | Python 3 命令 | Python 2 命令 | 特点 |
|---|---|---|---|
| 快速文件服务 | python -m http.server [端口] | python -m SimpleHTTPServer [端口] | 简单快捷,一键启动,适合临时使用 |
| 脚本化服务 | http.server+socketserver | SimpleHTTPServer+SocketServer | 可编程,能集成到其他应用中 |
| 自定义API | 继承http.server.BaseHTTPRequestHandler | 继承SimpleHTTPServer.SimpleHTTPRequestHandler | 灵活,可完全控制请求和响应的逻辑 |