gpt4 book ai didi

python - 执行 python 脚本的 python 服务器

转载 作者:行者123 更新时间:2023-11-30 23:32:19 24 4
gpt4 key购买 nike

这学期我正在上一门Python类(class),我想以网页的形式向我的程序添加图形用户界面。部分原因是我懒得学习 Tkinter,部分原因是我只是在挑战自己,部分原因是我只是喜欢 HTML/JS 中的编码界面。

我知道使用 SimpleHTTPServer 创建 HTTP 服务器的基础知识,但我需要的是一种让我的网页向服务器上的 python 脚本触发 ajax 命令的方法,然后该脚本将在服务器端执行,然后接收脚本输出。有点像Sage做事。

如何为 SimpleHTTPServer 创建一个扩展,然后用它来提供 python 脚本的输出?我需要一个非常通用的解决方案,以便给定我编写的任何 python 脚本,我可以轻松地将其包装在某种接口(interface)中,将其放入服务器的文件夹中,而不必执行任何其他操作,只需使用 AJAX 调用它,而我的服务器将处理其余的事情。

我当前的想法是拥有一个我的脚本可以扩展的 ServerSideScript 类,其中包含一个名为 output 的函数。我拥有的每个脚本都应该包含一个名为 Script 的 ServerSideScript 子类。当服务器被要求提供服务时,例如 foo.py,它会注意到扩展名并执行如下操作:

if self.path[-3:]: == ".py":
return getScriptOutput(self.path)

...

def getScriptOutput(self, path):
from path import Script # obviously not going to work, since path is a string
return Script().output()

由于评论中指出的原因,这不起作用,我知道类似 import_module 的事情。函数,但从一开始导入似乎是一种丑陋的方法。

推荐什么?

最佳答案

Python 附带电池; CGIHTTPServer将使用 CGI 标准运行 Python 脚本:

The CGIHTTPServer module defines a request-handler class, interface compatible with BaseHTTPServer.BaseHTTPRequestHandler and inherits behavior from SimpleHTTPServer.SimpleHTTPRequestHandler but can also run CGI scripts.

只要 Python 脚本具有 .py.pyw 扩展名并且可执行,它就会运行;映射到文件的其他路径被视为常规文件并提供其内容。

您可能对 cgi 感兴趣和 cgitb模块,以帮助简化 CGI 脚本开发。

关于python - 执行 python 脚本的 python 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19455452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com