当前位置: 首页 > news >正文

Python实例题:Pvthon实现简单的Web服务器

目录

Python实例题

题目

方法一:使用http.server模块

代码解释

运行思路

方法二:使用Flask框架

代码解释

运行思路

注意事项

Python实例题

题目

Pvthon实现简单的Web服务器

方法一:使用http.server模块

http.server是 Python 内置的模块,可用于快速搭建一个简单的静态文件服务器。

import http.server
import socketserver# 定义服务器的端口
PORT = 8000# 创建一个请求处理类
Handler = http.server.SimpleHTTPRequestHandler# 使用 socketserver 创建一个 TCP 服务器
with socketserver.TCPServer(("", PORT), Handler) as httpd:print(f"服务器正在运行,监听端口 {PORT}")# 启动服务器,开始处理请求httpd.serve_forever()

代码解释

  • 导入模块:导入http.serversocketserver模块。
  • 设置端口:定义服务器监听的端口号为 8000。
  • 创建请求处理类:使用SimpleHTTPRequestHandler,它可以处理简单的 HTTP 请求并返回当前目录下的静态文件。
  • 创建 TCP 服务器:使用socketserver.TCPServer创建一个 TCP 服务器,绑定到指定的地址和端口,并使用定义的请求处理类。
  • 启动服务器:调用serve_forever方法启动服务器,开始处理客户端的请求。

运行思路

  • 将上述代码保存为simple_web_server_http.py文件。
  • 在终端中运行:
python simple_web_server_http.py
  • 打开浏览器,访问http://localhost:8000,可以看到当前目录下的文件列表。

方法二:使用Flask框架

Flask是一个轻量级的 Web 框架,适合快速开发 Web 应用。

from flask import Flask# 创建 Flask 应用实例
app = Flask(__name__)# 定义路由和视图函数
@app.route('/')
def hello_world():return 'Hello, World!'if __name__ == '__main__':# 启动 Flask 应用app.run(debug=True)

代码解释

  • 导入模块:导入Flask类。
  • 创建应用实例:创建一个Flask应用实例。
  • 定义路由和视图函数:使用@app.route装饰器定义一个路由/,并定义对应的视图函数hello_world,该函数返回一个字符串'Hello, World!'
  • 启动应用:调用app.run方法启动 Flask 应用,设置debug=True可以开启调试模式。

运行思路

  • 安装Flask库:
pip install flask
  • 将上述代码保存为simple_web_server_flask.py文件。
  • 在终端中运行:
python simple_web_server_flask.py
  • 打开浏览器,访问http://localhost:5000,可以看到页面显示Hello, World!

注意事项

  • 使用http.server模块搭建的服务器主要用于提供静态文件服务,功能相对简单。
  • 使用Flask框架可以方便地开发动态 Web 应用,但需要安装额外的库。在生产环境中,建议使用更专业的 Web 服务器,如 Gunicorn 或 uWSGI 来部署 Flask 应用。
http://www.xdnf.cn/news/435115.html

相关文章:

  • AI 编程新时代!字节 Seed-Coder 重磅登场
  • 第六章QT基础: Lambda表达式补充
  • [250513] “End of 10” 活动:应对 Windows 10 支持终止,推广 Linux 转型
  • livenessProbe 和 readinessProbe 最佳实践
  • Pytorch学习笔记(二十二)Audio - Audio I/O
  • 论文《Collaboration-Aware Graph Convolutional Network for Recommender Systems》阅读
  • 打卡DAY24
  • 【调度算法】LaCAM快速多智能体路径搜索算法
  • LLM大模型transform架构的核心知识
  • 《从协议层面剖析 VoIP 通信:SIP 信令流中的 RPort、注册与呼叫建立机制》
  • 20250512期:基于arcpy数据驱动的大批量规范化出图
  • 油桃缺陷检测数据集VOC+YOLO格式559张2类别
  • AI助力:零基础开启编程之旅
  • 【JavaScript】原生 JavaScript 实现 localStorage 过期时间
  • Linux常用命令39——free显示系统内存使用量情况
  • 软件测试——面试八股文(入门篇)
  • 项目三 - 任务6:回文日期判断
  • 飞拍技术介绍
  • 从数据中台到数据飞轮:数字化转型的演进之路
  • Google Earth Engine(GEE) 代码详解:批量计算_年 NDVI 并导出(附 Landsat 8 数据处理全流程)
  • 这类物种组织heatmap有点东西
  • MySQL初阶:查询进阶
  • 京东平台商品评论接口接入指南与代码实现
  • D-Hank‘s平衡盐溶液(D-HBSS)无酚红设计 守护细胞活性与数据精准
  • 重生之我是CSDN大佬
  • Spark,RDD中的行动算子
  • curl发送数据不为null,但是后端接收到为null
  • 电子行业专利管理突破:全方位助力创新保护
  • SQL易混点:你知道ON 和 WHERE 的区别吗
  • 在服务器排查java某个线程导致CPU飙高教程