超简单的Python HTTP服务

yizhihongxing

下面是“超简单的Python HTTP服务”的攻略:

简介

Python有一个内置的模块http.server可以用来快速搭建一个简单的HTTP服务,它不需要任何的配置和依赖,非常方便。

步骤

1. 创建一个Python文件

首先,我们需要在本地创建一个Python文件,比如server.py,命名随意,但后缀必须要是.py

2. 编写代码

接下来,我们需要在server.py文件中编写代码。我们需要导入http.server模块,并创建一个SimpleHTTPRequestHandler的子类,然后启动一个HTTP服务器。代码如下:

import http.server
import socketserver


class MyHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write(b'Hello, World!')


if __name__ == '__main__':
    PORT = 8000
    with socketserver.TCPServer(('', PORT), MyHandler) as httpd:
        print('Server listening on port', PORT)
        httpd.serve_forever()

上述代码中,我们创建了一个名为MyHandler的子类,并重写了其do_GET方法,当有GET请求到来时,返回一个Hello, World!的字符串。

3. 启动HTTP服务器

最后,我们需要在终端中执行以下命令,启动一个HTTP服务器:

python server.py

这样就成功启动了一个HTTP服务器,监听在8000端口。此时,我们可以在浏览器中输入localhost:8000,看到Hello, World!字符串被返回。

示例

示例1:返回HTML页面

下面的示例会返回一个HTML页面,其中包含一个<h1>标签和一个图片。

import http.server
import socketserver


class MyHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        html = '<html><body><h1>Hello, World!</h1><img src="/test.jpg"></body></html>'
        self.wfile.write(bytes(html, 'utf-8'))


if __name__ == '__main__':
    PORT = 8000
    with socketserver.TCPServer(('', PORT), MyHandler) as httpd:
        print('Server listening on port', PORT)
        httpd.serve_forever()

上述代码中,我们返回了一个包含一张图片的HTML页面。当页面被加载时,会向服务器请求一张名为test.jpg的图片。

示例2:返回图片

下面的示例会返回一个名为test.jpg的图片。

import http.server
import socketserver


class MyHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        if self.path == '/test.jpg':
            self.send_response(200)
            self.send_header('Content-type', 'image/jpg')
            self.end_headers()
            with open('test.jpg', 'rb') as f:
                data = f.read()
                self.wfile.write(data)
        else:
            self.send_error(404)


if __name__ == '__main__':
    PORT = 8000
    with socketserver.TCPServer(('', PORT), MyHandler) as httpd:
        print('Server listening on port', PORT)
        httpd.serve_forever()

上述代码中,当有GET请求到来时,如果请求路径是/test.jpg,则返回名为test.jpg的图片。如果请求的路径不是/test.jpg,则返回404状态码。为了让这段示例代码能够正常运行,我们需要在当前目录下添加一张名为test.jpg的图片文件。

注意事项

  • 在实际使用中,我们应该避免在生产环境中使用http.server模块,因为它的性能不够强大,仅适用于简单的测试任务。
  • 在使用时,需要根据实际情况修改代码。比如,do_GET方法中可以根据不同的URL返回不同的内容,也可以使用do_POST方法来处理POST请求,等等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:超简单的Python HTTP服务 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python文件处理详解

    那么让我们来详细讲解一下“Python文件处理详解”的完整实例教程。 什么是Python文件处理 Python文件处理指的是程序通过操作文件的方式对数据进行管理。Python提供了一些内置函数和模块,使得文件的读、写和操作变得非常容易和有效。 Python文件处理的基本操作 在Python中,文件操作主要分三种:文件读取、文件写入和文件关闭。下面让我们一步步…

    python 2023年5月13日
    00
  • Python max()和min()寻找极值

    Python的max()和min()是内置函数,用于寻找可迭代对象(如列表,元组,字典等)中的最大值和最小值。 以下是它们的使用方法: max()函数 max(iterable[, key=func]) -> value With a single iterable argument, return its biggest item. The defa…

    python-answer 2023年3月25日
    00
  • Python+pyecharts绘制交互式可视化图表

    下面是我对“Python+pyecharts绘制交互式可视化图表”的完整攻略。 一、什么是pyecharts pyecharts是一款基于Echarts 3.x和Python编写的图表库。它能够快速简单地绘制出各种交互式可视化图表,支持30+种图表类型,包括但不限于折线图、柱状图、散点图、地图等,还可以进行多种配置和样式的自定义。 二、pyecharts的安…

    python 2023年6月6日
    00
  • 分享13个好用到起飞的Python技巧

    分享13个好用到起飞的Python技巧攻略 简介 Python是一种高级编程语言,当前在Web开发、数据分析、人工智能等领域广泛应用。在Python编程中,掌握一些技巧对于提高开发效率和编写高质量的代码都十分有帮助。以下是13个好用到起飞的Python技巧攻略。 好用到起飞的技巧 把列表中的元素反转 my_list = [1, 2, 3, 4, 5] my_…

    python 2023年5月30日
    00
  • python中对list去重的多种方法

    在Python中,对于一个列表(List)中的元素,可能会存在重复的情况。为了去除列表中的重复元素,可以使用多种方法本文将详细讲解Python中对List去重的多种方法,包括使用set()函数、使用列表推式、使用字典等方法。 方法一:使用set()函数 set()函数是Python中的一个内置函数,可以于创建一个无序不重元素集,可以用于去除列表的重复元素。例…

    python 2023年5月12日
    00
  • 详解Python相关文件常见的后缀名

    详解Python相关文件常见的后缀名 在Python开发过程中,常见的文件类型有很多种。针对不同的文件类型,有不同的文件后缀名。本文将详细讲解Python相关文件常见的后缀名。 .py文件 .py文件是Python文件的标准后缀名,表示该文件是一个Python源代码文件。在Python中,可以通过编写.py文件进行源代码的编写、保存、运行等操作。 示例1:创…

    python 2023年5月18日
    00
  • django2用iframe标签完成网页内嵌播放b站视频功能

    下面我将详细讲解如何使用Django2实现网页内嵌播放b站视频功能。 1. 准备工作 在开始之前,你需要进行一些准备工作:- 安装Django2及其依赖库;- 获取B站视频的嵌入代码(<iframe>标签);- 编写Django2视图函数以及相应的HTML模板。 2. Django2视图函数 在Django2中,视图函数是处理用户请求并返回响应的…

    python 2023年6月5日
    00
  • Python入门教程之pycharm安装/基本操作/快捷键

    Python入门教程之pycharm安装/基本操作/快捷键 PyCharm是一款由JetBrains开发的Python集成开发环境(IDE),提供了代码分析、图形化调试器、集成版本控制系统等多种功能,是Python开发者们经常使用的工具之一。本文将介绍pycharm的安装、基本操作和常用快捷键。 PyCharm的安装 安装步骤 下载相应版本的PyCharm安…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部