下面是详细讲解“用Python一键搭建Http服务器的方法”的完整攻略。
目录
背景介绍
在开发过程中,我们可能需要将一些静态的文件部署到一个Http服务器上,比如图片、CSS、JS等文件。有些时候我们可能并不想通过IIS、Apache等Web服务器来实现这个功能,而是想用Python快速地搭建一个Http服务器。那么,下面将介绍如何使用Python的内置模块来快速搭建一个Http服务器。
使用SimpleHTTPServer模块搭建服务器
Python提供了一个简单的内置模块SimpleHTTPServer
(Python2)/http.server
(Python3),它可以帮助我们快速地搭建一个Http服务器。使用该模块可以不用编写复杂的代码即可完成Http服务器的需求。
以下是使用SimpleHTTPServer
模块搭建Http服务器的示例代码:
# 导入该模块
import SimpleHTTPServer
import SocketServer # Python2使用
# 定义端口号
PORT = 8000
# 切换到服务器需要服务的目录,比如存放静态文件的目录
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
# 开启Http服务
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever() # 监听请求,开启Http服务
需要注意的是,SimpleHTTPServer
模块只能够提供静态文件服务,不能提供动态的服务。如果需要提供动态服务,可以考虑使用Flask、Django等Web框架。
使用http.server模块搭建服务器
http.server
模块是Python3中替代SimpleHTTPServer
模块的,使用方法与SimpleHTTPServer
模块类似,只需导入该模块并开启服务即可。
以下是使用http.server
模块搭建Http服务器的示例代码:
# 导入该模块
import http.server
import socketserver # Python3使用
# 定义端口号
PORT = 8000
# 切换到服务器需要服务的目录,比如存放静态文件的目录
Handler = http.server.SimpleHTTPRequestHandler
# 开启Http服务
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("serving at port", PORT)
# 监听请求,开启Http服务
httpd.serve_forever()
需要注意的是,http.server
模块只能够提供静态文件服务,不能提供动态的服务。如果需要提供动态服务,可以考虑使用Flask、Django等Web框架。
示例说明
假设我们有一个html文件index.html
,并且该文件位于/home/user/test
目录下,现在我们需要将该html文件部署到Http服务器上,在地址栏输入http://localhost:8000/index.html
能够访问到该文件。
Python2示例
- 创建一个
simple_server.py
文件 - 在文件中写入以下代码:
import SimpleHTTPServer
import SocketServer
PORT = 8000
DIRECTORY = "/home/user/test"
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
os.chdir(DIRECTORY)
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
- 打开终端并输入
python simple_server.py
,会输出serving at port 8000
- 在浏览器中输入
http://localhost:8000/index.html
,页面就能够正确显示
Python3示例
- 创建一个
http_server.py
文件 - 在文件中写入以下代码:
import http.server
import socketserver
PORT = 8000
DIRECTORY = "/home/user/test"
Handler = http.server.SimpleHTTPRequestHandler
os.chdir(DIRECTORY)
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("serving at port", PORT)
httpd.serve_forever()
- 打开终端并输入
python3 http_server.py
,会输出serving at port 8000
- 在浏览器中输入
http://localhost:8000/index.html
,页面就能够正确显示
总结
本文主要介绍了Python内置模块SimpleHTTPServer
(Python2)和http.server
(Python3)的使用方法,并给出了相应的示例说明。相较于其他Web服务器搭建方式,这种方式比较简单,适用于快速搭建一个Http服务器。需要注意的是,这种方式只能提供静态文件服务,如果需要提供动态服务,可以考虑使用Flask、Django等Web框架进行处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用Python一键搭建Http服务器的方法 - Python技术站