QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 85|回复: 0
打印 上一主题 下一主题

使用Python实现简单的Web服务器

[复制链接]
字体大小: 正常 放大

796

主题

1

听众

1970

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-4-26 16:29 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
Python是一种非常灵活的编程语言,它不仅能够处理复杂的数据分析和机器学习任务,还能用于创建简单的Web应用。本文将介绍如何使用Python内置的HTTP服务器模块来创建一个基本的Web服务器,并展示如何通过源码实现简单的路由和请求处理。

环境准备
为了运行下面的代码,你需要有Python环境。本文示例使用Python 3.8,但大多数现代Python版本(3.6以上)都可以正常工作。

安装依赖
对于这个简单的Web服务器,我们不需要安装任何额外的依赖。直接使用Python内置的http.server模块即可。

创建Web服务器
Python的http.server模块提供了一个简单的HTTP服务器。下面是一个简单的服务器示例,它可以响应GET请求,并返回一个简单的欢迎信息。
  1. from http.server import BaseHTTPRequestHandler, HTTPServer

  2. class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):

  3.     def do_GET(self):
  4.         # 响应请求的函数
  5.         self.send_response(200)  # 发送HTTP响应
  6.         self.send_header('Content-type', 'text/html')  # HTML内容类型
  7.         self.end_headers()  # 结束头部
  8.         response = "Hello, World!"  # 响应内容
  9.         self.wfile.write(response.encode('utf-8'))  # 写入响应

  10. def run(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler):
  11.     server_address = ('', 8000)  # 服务器地址和端口
  12.     httpd = server_class(server_address, handler_class)  # 创建服务器实例
  13.     print(f'Starting httpd server on port {server_address[1]}')
  14.     httpd.serve_forever()  # 开始提供服务

  15. if __name__ == '__main__':
  16.     run()
复制代码
运行服务器
将上述代码保存为simple_web_server.py,然后在命令行中运行以下命令:

python simple_web_server.py
1
这将启动一个在本地8000端口上监听的Web服务器。打开你的Web浏览器,访问http://localhost:8000,你将看到显示“Hello, World!”的网页。

扩展服务器功能
为了展示如何添加路由,我们可以修改上面的代码,使其能够响应不同的URL路径:
  1. # ...(其他代码保持不变)

  2. class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):

  3.     def do_GET(self):
  4.         # 根据路径发送不同的响应
  5.         if self.path == '/':
  6.             response = "Hello, World!"
  7.         elif self.path == '/about':
  8.             response = "This is the about page."
  9.         else:
  10.             response = "Page not found."
  11.             self.send_response(404)  # 发送404状态码

  12.         self.send_header('Content-type', 'text/html')
  13.         self.end_headers()
  14.         self.wfile.write(response.encode('utf-8'))

  15. # ...(其他代码保持不变)
复制代码
通过修改,我们现在可以响应根路径/和/about路径,以及其他路径将返回404错误信息。

本文展示了如何使用Python内置模块创建一个简单的Web服务器,并通过修改请求处理函数来添加基本的路由功能。虽然这个服务器非常简单,但它为理解HTTP服务器的工作原理和Python网络编程提供了一个很好的起点。对于更复杂的Web应用,你可能需要使用更高级的框架,如Flask或Django。


————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/wbryze/article/details/138193587

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2024-5-9 10:56 , Processed in 0.370080 second(s), 49 queries .

回顶部