登录
首页 >  文章 >  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<br><br>class SimpleHandler(BaseHTTPRequestHandler):<br>    def do_GET(self):<br>        self.send_response(200)<br>        self.send_header('Content-type', 'text/plain; charset=utf-8')<br>        self.end_headers()<br>        self.wfile.write(b'Hello from Python web server!')<br><br>if __name__ == '__main__':<br>    server = HTTPServer(('localhost', 8000), SimpleHandler)<br>    print("Server running on http://localhost:8000")<br>    server.serve_forever()

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

支持简单路由和动态内容

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

def do_GET(self):<br>    if self.path == '/':<br>        self.send_response(200)<br>        self.send_header('Content-type', 'text/html')<br>        self.end_headers()<br>        self.wfile.write(b'<h1>Home Page</h1>')<br>    elif self.path == '/api/time':<br>        import json, datetime<br>        self.send_response(200)<br>        self.send_header('Content-type', 'application/json')<br>        self.end_headers()<br>        data = {'time': datetime.datetime.now().isoformat()}<br>        self.wfile.write(json.dumps(data).encode())<br>    else:<br>        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学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>