← Python 学习

Python 学习

快速启动一个 HTTP 静态网站

·Python 学习

预览 HTML / CSS / JS 时,用文件协议 file:// 常常踩相对路径和模块脚本的坑。Python 自带一个静态服务器,一行命令就能把目录挂到浏览器里。

1. 一行命令

标准库就有,不用 pip install。在要发布的目录外执行:

python3 -m http.server 8877 --directory raw_html

终端出现 Serving HTTP on ... port 8877 就成功了。浏览器打开 http://127.0.0.1:8877/。停掉服务按 Ctrl + C

不写端口时,默认是 8000

python3 -m http.server

这时会把当前工作目录整棵树都挂出去。

2. 指定目录

--directory(短写 -d)决定网站根。上面那条会把 raw_html/ 当成 /,所以 raw_html/index.html 对应 http://127.0.0.1:8877/index.html,不必先 cd 进去。

# 等价:先进入目录再启动
cd raw_html
python3 -m http.server 8877

目录里有 index.html 时,访问 / 会自动落到它;没有则列出文件清单。

3. 端口和绑定地址

默认只听本机。手机、另一台电脑要访问,需要绑到所有网卡:

python3 -m http.server 8877 --bind 0.0.0.0 --directory raw_html

--bind 127.0.0.1 只给本机;0.0.0.0 局域网可见。端口被占用就换一个,例如 9000

4. 怎么访问

从哪打开 地址
本机浏览器 http://127.0.0.1:8877/http://localhost:8877/
同一 Wi-Fi 的手机 http://本机局域网IP:8877/,并加 --bind 0.0.0.0

本机 IP 可看 ipconfig getifaddr en0(macOS)或 hostname -I(Linux)。防火墙拦了入站,对面会连不上。

5. 几个容易踩的点

6. 不要拿去上生产

这个服务是给本地预览用的:单线程、没有鉴权、没有压缩和缓存策略,也不适合扛并发。线上静态站用 Nginx、Caddy,或仓库里现成的 upload.sh / Pages。

要自己写接口、上传文件、上生产进程,走 Flask HTTP 服务器,不要在 http.server 上叠业务。