登录
首页 >  文章 >  python教程

Python搭建简易Web服务器教程

时间:2026-03-03 23:55:07 242浏览 收藏

本文手把手教你用Python内置的http.server模块快速搭建简易Web服务器——无需安装任何依赖,一行命令就能启动静态文件服务,还能通过自定义请求处理器实现GET/POST响应、路径路由和动态内容(如返回JSON时间戳),特别适合本地开发调试、教学演示或快速原型验证;同时明确指出其单线程、无HTTPS、不支持并发等局限性,并贴心推荐Flask、FastAPI和Django等生产级替代方案,兼顾实用性与进阶指引。

Python 实现简单 Web 服务器

用 Python 写一个简单 Web 服务器,最直接的方式是使用内置的 http.server 模块,无需安装额外依赖,适合快速测试、本地开发或教学演示。

用命令行快速启动静态服务器

在终端进入你存放 HTML、CSS、JS 等文件的目录,执行:

python -m http.server 8000

默认监听 http://localhost:8000,支持 GET 请求,自动列出当前目录下的文件(如果含 index.html 则优先显示)。端口号可换成任意可用数字(如 3000、5000)。

自定义基础 HTTP 处理器

若需控制响应内容(比如返回固定文本或简单 JSON),可继承 http.server.BaseHTTPRequestHandler

from http.server import HTTPServer, BaseHTTPRequestHandler

class SimpleHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/plain; charset=utf-8')
self.end_headers()
self.wfile.write(b'Hello from Python web server!')

if __name__ == '__main__':
server = HTTPServer(('localhost', 8000), SimpleHandler)
print("Server running on http://localhost:8000")
server.serve_forever()

关键点:
do_GET 处理 GET 请求,也可实现 do_POST
• 必须显式调用 send_responseend_headers
• 响应体要写入 self.wfile,且必须是 bytes 类型(加 b'' 或用 .encode()

支持简单路由和动态内容

可在 do_GET 中根据 self.path 做路径分发:

def do_GET(self):
if self.path == '/':
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(b'

Home Page

')
elif self.path == '/api/time':
import json, datetime
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
data = {'time': datetime.datetime.now().isoformat()}
self.wfile.write(json.dumps(data).encode())
else:
self.send_error(404, 'Not Found')

注意:
• 路径含查询参数(如 /search?q=python)时,self.path 包含完整字符串,可用 urllib.parse.urlparse 解析
• 不处理 POST 数据时,记得忽略或返回 405 错误

小提醒:这不是生产环境方案

http.server 是单线程、阻塞式实现,不支持并发请求,也没有 HTTPS、静态文件缓存、URL 重写等能力。实际项目推荐:
• Flask(轻量,适合 API 或小网站)
• FastAPI(高性能,自带 OpenAPI)
• Django(全功能框架,适合中大型应用)

以上就是《Python搭建简易Web服务器教程》的详细内容,更多关于的资料请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>