如何为我的Python脚本创建本地Web服务器?
我想在本地搭建一个网页服务器,用来运行一系列的Python脚本,供用户使用。由于一些不可避免的原因,这些Python脚本必须在本地运行,而不能放在远程服务器上。因此,我打算用HTML和浏览器作为前端界面,这我比较熟悉。
所以,我一直在寻找一个轻量级的网页服务器,能够在后台执行Python脚本,最好能作为Windows服务运行。安全性和可扩展性不是我的主要考虑,因为这一切都是在一个小型网络内部运行的。
我应该直接在Windows服务中运行一个原生的Python网页服务器吗?如果是这样的话,该怎么做?或者说,安装Apache在用户的机器上并作为CGI运行是不是同样简单?因为这一切都是本地的,所以性能也不是问题。
或者我是不是漏掉了什么明显的东西?
4 个回答
最好的方法是通过命令提示符创建自己的本地服务器。
- 先新建一个文件夹,叫做 Project。
- 在 Project 文件夹里面再新建一个文件夹,命名为 "cgi-bin"(不带引号)。
- 把你的 .py 文件放到 cgi-bin 文件夹里。
- 打开命令提示符,切换到你想要运行服务器的目录,然后输入 "python -m CGIHTTPServer"(不带引号)。
- 把命令提示符窗口最小化,打开你的浏览器,输入 "localhost:8000/cgi-bin/你的python文件名.py"(不带引号)。
最简单的步骤就是找到你文件所在的文件夹,然后运行 http.server 模块。
cd /yourapp
python3 -m http.server
然后你应该在控制台看到类似下面的内容:
正在通过 0.0.0.0 的 8000 端口提供 HTTP 服务 (http://0.0.0.0:8000/) ...
别浪费太多时间去创建Windows服务。
也别在Windows Apache上浪费时间。
直接做一个能响应HTTP请求的Python服务就行了。
可以看看 这个链接
还有这个链接,这是Python 3的文档。
Python提供了一个HTTP服务器,你可以在这个基础上添加自己的服务器端方法。
再看看 这个链接
Python还提供了一个WSGI的参考实现,让你的服务器更简单,并符合标准。
还有 这个链接。
“我想避免让用户从命令提示符运行Python程序。”
我觉得点击网页和点击桌面图标没什么区别。
一旦你有了基于Python的网络服务器,启动它其实很简单。首先,搭建好服务器。之后,你可以确保服务器能自动启动。我们来看看一些方法。
用户不能随便用浏览器打开你的本地页面。他们需要一个书签来启动“localhost:8000/myspecialserverinsteadofthedestop/”。这个书签可以是一个.BAT文件,里面可以(1)运行服务器,(2)用Firefox打开正确的初始网址。
你可以把服务器放在用户的“开始”菜单里。
你还可以把你的Python程序做成Windows的“服务”。