首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 搭建最簡單 HTTP 服務器:http.server 一行命令與腳本式擴展

     編輯:更多程式設計知識

一行命令啟動(Python 3)


python -m http.server 8000
# 或指定綁定地址
python -m http.server 8000 --bind 127.0.0.1

當前目錄作為根目錄,支持 GET/HEAD,自動生成目錄列表。

腳本式自定義服務器


import sys
from http.server import HTTPServer, SimpleHTTPRequestHandler

def run(port=8000, bind='127.0.0.1'):
    server_address = (bind, port)
    httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)
    print(f'Serving HTTP on {bind}:{port} ...')
    httpd.serve_forever()

if __name__ == '__main__':
    port = int(sys.argv[1]) if len(sys.argv) > 1 else 8000
    run(port)

擴展:添加 CORS、日誌、路由


from http.server import SimpleHTTPRequestHandler
import json

class MyHandler(SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_header('Access-Control-Allow-Origin', '*')
        super().end_headers()

    def do_POST(self):
        length = int(self.headers.get('Content-Length', 0))
        data = self.rfile.read(length).decode()
        print('POST data:', data)
        self.send_response(200)
        self.end_headers()
        self.wfile.write(json.dumps({'status': 'ok'}).encode())

if __name__ == '__main__':
    from http.server import HTTPServer
    HTTPServer(('0.0.0.0', 8000), MyHandler).serve_forever()

生產環境建議

  • 開發/測試/靜態文件服務 → http.server 足夠;
  • 生產 API/動態業務 → FastAPI/Flask/Django + Gunicorn/uWSGI;
  • 高性能靜態文件 → Nginx 或 Caddy。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved