欢迎访问宙启技术站
智能推送

使用Python编写一个简单的网页服务器

发布时间:2023-12-04 15:20:22

下面是一个使用Python编写的简单的网页服务器及使用例子:

import http.server
import socketserver

PORT = 8000

# 创建一个自定义的请求处理程序
class MyHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        try:
            # 根据请求的路径返回不同的页面
            if self.path == '/':
                self.send_response(200)
                self.send_header('Content-type', 'text/html')
                self.end_headers()
                self.wfile.write(b'Hello, World! This is the home page.')
            elif self.path == '/about':
                self.send_response(200)
                self.send_header('Content-type', 'text/html')
                self.end_headers()
                self.wfile.write(b'This is the about page.')
            else:
                self.send_response(404)
                self.send_header('Content-type', 'text/html')
                self.end_headers()
                self.wfile.write(b'Page not found.')
        except Exception as e:
            self.send_response(500)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            self.wfile.write(b'Internal Server Error.')
            print('Error:', e)

# 使用socketserver创建一个简单的HTTP服务器
with socketserver.TCPServer(("", PORT), MyHandler) as httpd:
    print("Server started at localhost:%s" % PORT)
    httpd.serve_forever()

这个服务器监听本地的8000端口。通过访问http://localhost:8000/可以查看主页,访问http://localhost:8000/about 可以查看关于页面。

基本流程如下:

1. 导入必要的模块。

2. 设置一个监听的端口(这里使用8000)。

3. 创建一个自定义的请求处理程序(继承自http.server.SimpleHTTPRequestHandler)。

4. 在请求处理程序中定义相应的处理方法(这里只实现了do_GET)。

5. 在do_GET方法中根据请求的路径(self.path)返回不同的页面。

6. 如果没有匹配的路径,返回404错误。

7. 如果在处理过程中发生异常,返回500错误。

8. 使用socketserver模块的TCPServer类创建一个简单的HTTP服务器,并指定监听的地址和端口。

9. 使用serve_forever方法启动服务器,开始监听请求。

你可以通过运行这个脚本后,在浏览器中访问相应的URL来查看服务器的响应。