实现一个简单的Web服务器,使用Python内置的http.server
模块。具体功能和使用的技主要有以下几点:
功能
- HTTP GET 请求处理:服务器可以处理HTTP GET请求,并返回一个包含HTML内容的响应。
- 静态HTML页面:返回的HTML页面包含了一些基本的内容,包括标题、段落等。
- 基本样式:使用CSS对页面进行了简单的美化,使其看起来更加整洁。
技术
-
Python 内置模块
http.server
:HTTPServer
:用于创建一个HTTP服务器实例。BaseHTTPRequestHandler
:这是一个基类,用于处理HTTP请求。通过继承这个类并重写do_GET
方法,可以自定义GET请求的处理逻辑。
-
HTML 和 CSS:
- HTML:用于构建网页的基本结构。
<!DOCTYPE html>
:声明文档类型为HTML5。<html lang="zh-CN">
:设置文档的语言为中文。<head>
:包含元数据,如字符集、视口设置和页面标题。<style>
:内联CSS样式,用于美化页面。<body>
:包含页面的主要内容。
- CSS:用于控制HTML元素的外观和布局。
- 基本样式设置了字体、背景颜色、居中显示等内容。
- 使用Flexbox布局使内容在页面中央对齐。
- 添加了阴影效果以增强容器的视觉层次感。
- HTML:用于构建网页的基本结构。
运行步骤
- 将上述代码保存到一个文件中,例如
simple_server.py
。 - 在命令行中运行该脚本:
python simple_server.py
- 打开浏览器,访问
http://localhost:8000
,即可看到服务器返回的HTML页面。
代码展示:
from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
html = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简单Python服务器</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f9;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
text-align: center;
background-color: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
color: #333;
}
p {
color: #666;
}
</style>
</head>
<body>
<div class="container">
<h1>欢迎来到简单Python服务器</h1>
<p>这是一个使用Python内置的http.server模块实现的简单Web服务器。</p>
<p>你可以在这里添加更多的内容和功能。</p>
</div>
</body>
</html>
"""
self.wfile.write(html.encode('utf-8'))
def run(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler, port=8000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f'启动httpd服务器,监听端口 {port}')
httpd.serve_forever()
if __name__ == '__main__':
run()
效果图: