Python Http Server (Hello World?14行代码)一

本文通过14行Python代码展示了如何使用内置http库创建一个简单的HTTP服务器。主要介绍了do_GET和do_POST方法,用于处理GET和POST请求。通过运行服务器并在浏览器中访问,实现了本地HTTP服务的验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍的是如何使用python中基础的 http 库来搭建一个简易的 HTTP WEB 服务器。

首先介绍一下我们要使用的库:

import http.server
import socketserver

这两个是基础的server需要使用的库。

再来看看我们此次程序需要用到的其他库,主要是为了方便我们做 url 的解析。

from urllib import parse
import cgi
import re
import os

我们先定义一个类:

class MyServer(http.server.CGIHTTPRequestHandler):

首先,我们明确 http server 最主要需要我们重载的两个函数,一个是 do_GET(), 还有一个是 do_POST()。

顾名思义,两个函数分别针对 GET 请求和 POST 请求。

我们可以先试试一个简单的 do_GET() 和 do_POST():

    def do_GET(self):
        self.send_response(200, "OK")
        self.send_header("content-type", "text/html")
        self.end_headers()
        self.wfile.write(bytes("fxxk", encoding='utf-8'))</
### 创建简单HTTP服务器 为了创建个简单的 HTTP 服务器,在 Python 中可以利用内置模块 `http.server` 来快速实现这功能。下面是个基本的例子,它会在访问根路径时返回 "Hello, World!" 的消息。 ```python from http.server import BaseHTTPRequestHandler, HTTPServer class HelloWorldHandler(BaseHTTPRequestHandler): def do_GET(self): if self.path == '/': self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers() message = "Hello, World!" self.wfile.write(bytes(message, "utf8")) else: self.send_error(404) def run(server_class=HTTPServer, handler_class=HelloWorldHandler, port=8080): server_address = ('', port) httpd = server_class(server_address, handler_class) print(f'Starting httpd on port {port}...') try: httpd.serve_forever() except KeyboardInterrupt: pass httpd.server_close() if __name__ == '__main__': from sys import argv if len(argv) == 2: run(port=int(argv[1])) else: run() ``` 这段代码定义了个处理 GET 请求的类 `HelloWorldHandler` 并继承自 `BaseHTTPRequestHandler`[^1]。当接收到针对根 URL (`/`) 的请求时,会发送状态码 200 和响应头给客户端,并通过 `wfile.write()` 方法向浏览器输出字符串 "Hello, World!"。对于其他任何路径,则返回 404 错误页面表示未找到资源。 此脚本还提供了个名为 `run` 函数用于启动服务监听指定端口,默认情况下是 8080 端口;如果提供了命令参数则使用该参数作为端口号运程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值