Python 本地服务器
本篇文章将向我们展示如何在 Python 中创建 HTTP 服务器。 在学习完本篇文章后,我们只需几行代码就可以轻松搭建一个 HTTP 服务器。
一旦我们创建了我们的 HTTP 服务器,我们就可以开始从它提供文件。 让我们深入了解 Python HTTP 服务器分步指南以获得进一步的帮助。
在 Python 中从头开始创建 HTTP 服务器
在我们作为软件工程师的职业生涯中的某个时刻,无论我们的软件工程师是什么,我们都需要使用 Web 服务器。 也许我们可能需要为后端服务开发一个 API 服务器。
也许我们只是为我们的网站设置一个网络服务器。
Python 使用主要 HTTP 服务器简化了从目录提供文件的过程。 这绝不是什么创新的技术,但是在我们需要的时候还是有用的。
什么是 HTTP 服务器
HTTP 服务器是一种计算机程序(或可能是另一个程序的软件组件),它通过实现 HTTP 和/或 HTTPS 网络协议的服务器部分来充当客户端-服务器体系结构中的服务器。
HTTP 服务器监视传入的客户端请求(由浏览器、网络爬虫等用户代理发出)并通过传输请求的 Web 资源或返回 HTTP 错误消息来响应每个请求。
HTTP 服务器还包含绑定以管理对 HTTP 的协议扩展(例如 WebDAV)或包含在 HTTP 消息(例如 SOAP)中的其他协议的消息以支持程序到程序的交互。
HTTP 服务器实现的复杂性可以从一个小的可控组件到一个功能齐全的 HTTP 和其他协议的软件实现,这些协议可以在后台运行并作为一个或多个进程。
HTTP 服务器存在于各种类型的计算机中,包括嵌入式系统和超级计算机,也是操作 Web 界面(Web 应用程序)等所必需的。
让我们更准确地阐明这一点。
考虑打开我们的 Chrome 浏览器并在地址栏中输入 www.gmail.com。
运行链接后,Gmail 主页将显示在我们的 Web 浏览器窗口中。 然而,幕后究竟发生了什么?
老实说,发生了很多事情,我们可以花一些时间来探索这一切背后的神秘运作方式。 但是,为了清楚和简洁起见,我们将通过一个示例来讨论这个主题。
当我们在浏览器中输入 www.gmail.com 时,浏览器会生成一个网络消息,称为 HTTP 请求。 该请求将被发送到运行网络服务器的 Gmail 机器,并会一直留在那里直到它被处理。
该 Web 服务器将检测我们的请求,对其进行处理,然后向我们提供 gmail 主页的 HTML 作为响应。
最后,我们的 Web 浏览器会在系统屏幕上向我们显示此 HTML,这就是我们在查看计算机时所看到的内容。
这就是发送和处理请求的方式。 现在我们知道了幕后过程,我们可以轻松地转到使用 Python 创建 HTTP 服务器的主题。
在 Python 中使用一个命令构建一个基本的 HTTP 服务器
安装
如果我们还没有安装 Python(可能使用 Windows),我们可以安装它。
由于我们安装了 Python,我们可以继续创建 HTTP 服务器的过程。 首先,打开终端并在终端中键入以下命令。
示例代码:
python -m http.server
当我们运行该命令时,我们将收到一条消息,通知服务器已启动和服务器已停止,具体取决于我们计算机的配置。
我们有它 - 我们自己的 Python 服务器! 它很简单,是我们机器默认端口 8000 上的 Web 服务器。
它仅执行此功能。 也可以通过在行尾包含新的端口号来更改端口,如下所示:
python -m http.server 8080
上面的代码将服务器端口从默认端口 8000 更改为 8080。
现在我们需要转到 http://localhost:8000/ 或 http://127.0.0.1:8000/ 以访问本地网络上的服务器。 从这一点上,我们可以看到构成我们本地存储的所有文件夹和所有数据。
我们也可以访问一个 HTML 页面; 当我们这样做时,我们的网络浏览器将自动为我们重新创建页面。
BaseHTTPRequestHandler
BaseHTTPRequestHandler 是一个用于管理发送到服务器的各种请求的类。 它处理 Get 和 Post 请求,而不是实际的 HTTP 请求本身。
HTTP服务器
这个函数称为 HTTPServer(server address, BASE HTTP REQUEST HANDLER(),)
,除了服务器名称外,还用于保存服务器的端口号。
循序渐进的方法
- 我们将构建一个负责管理服务器请求的类。
- 完成后,我们将在该类中开发一个用于 GET 请求的方法。
- 在该功能的范围内,将起草用于在服务器上显示它的 HTML 代码。
-
最后,我们将使用
HTTPServer()
方法,它负责我们服务器的操作。
现在,我们将使用 Python 语言实现上述步骤。
# importing all the functions
# from http.server module
# * means all
from http.server import *
# creating a class for handling
# basic Get and Post Requests
class GFG(BaseHTTPRequestHandler):
# We will create a function
#for Get Request using the command below
def do_GET(self):
# Successful Response --> 200
self.send_response(200)
# Type of file that we are using for creating our
# web server.
self.send_header('content-type', 'text/html')
self.end_headers()
# whatever we write in our function,
#we can see it at the web-server
self.wfile.write('<h1>AO-(AbidOrakzai)</h1>'.encode())
# this object takes a report
# number and the server-Name
# for running the server
port = HTTPServer(('', 5555), GFG)
#We use this for running our
# server as long as we want, i.e., forever
port.serve_forever()
输出:
AO-(AbidOrakzai)
我们如何启动我们的 HTTP 服务器
我们可以使用以下终端指令来启动我们的 HTTP 服务器。
示例代码:
python our_file_name.py
最后一步是通过5555端口访问服务器。我们可以使用浏览器 http://localhost:5555/
或者http://127.0.0.1:5555/
。
我们希望本文能帮助大家更好地了解如何使用 Python 从头开始创建 HTTP 服务器。
相关文章
Python 中的一行 FTP 服务器
发布时间:2023/06/20 浏览次数:135 分类:Python
-
FTP 是文件传输协议的缩写。 它允许您通过计算机网络在客户端和服务器之间传输文件。使用 pyftpdlib 在 Python 中创建一行 FTP 服务器
在 Python 中检查 Argparse 的参数
发布时间:2023/06/20 浏览次数:125 分类:Python
-
本篇文章将讨论 argparse 的使用,我们将使用条件语句和 Python 中的参数名称检查 argparse 中是否存在参数。在 Python 中检查 argparse 的参数
Python 循环缓冲区
发布时间:2023/06/20 浏览次数:51 分类:Python
-
循环缓冲区是环形缓冲区的另一个名称。 Python 中的高效循环缓冲区。高效的循环缓冲区是一种允许高效插入和删除数据的数据结构。
Cron 类似 Python 中的调度程序
发布时间:2023/06/20 浏览次数:120 分类:Python
-
本篇文章将介绍调度类似于 Linux 中的 cron 作业的任务。 首先,我们将查看调度模块以在进程内调度中调度我们的作业。
通过 Crontab 执行 Python 脚本
发布时间:2023/06/20 浏览次数:57 分类:Python
-
在本文中,我们将探讨 Crontab 以及如何使用它来运行 Python 脚本。Linux/Unix/Solaris 中的 Crontab
克隆 Git 存储库的 Python 方法
发布时间:2023/06/20 浏览次数:196 分类:Python
-
让我们看看我们可以在 Python 环境中克隆 Git 存储库的不同方法。使用 PyCharm 克隆 Git 存储库
在 Python 中计算两个 GPS 点之间的距离
发布时间:2023/06/19 浏览次数:134 分类:Python
-
计算两个 GPS 点之间的距离是我们可以在 Python 框架内操作的地理和数学练习。 现在让我们看看如何使用 Python 执行此操作。在 Python 中使用 Haversine 公式计算两个 GPS 点之间的距离
Python 中的 Verbose
发布时间:2023/06/19 浏览次数:70 分类:Python
-
在这个简短的指南中,我们将学习 verbose 以及如何在 Python 中实现它。Python 中的详细信息 详细模式是一种计算功能,也是许多计算机操作系统和编程语言中的通用概念。
Python 中的 Promise 系列
发布时间:2023/06/19 浏览次数:61 分类:Python
-
本篇文章将介绍如何用 Python 编写一系列 promise。 首先,我们将讨论 Python 中的异步编程。接下来,我们将讨论 Python 中的回调函数。