从浏览器运行Python应用程序

时间:2014-05-10 21:50:48

标签: python django python-2.7

我对编程很陌生,而且我在业余时间学习python。作为对自己的挑战,我为课堂项目创建了一个简单的文本冒险。这不适用于编程课程,因此教授不知道如何编译原始Python脚本,更不用说在他们的Mac上安装Python解释器了。

话虽如此,是否可以从浏览器运行python?我想象一下我的教授或任何人可以点击的HTML文件启动浏览器,他们可以从那里玩我的游戏。

我从这个主题的研究中学到了一些叫Django的东西。但是,我不知道它是什么,也不知道如何实现它。再一次,我对编程很陌生,所以如果你能像我五岁那样解释,那就太棒了。

编辑:我发现了OP提出类似问题的另一个问题,但我并不完全理解批准的答案:

execution python application from browser

3 个答案:

答案 0 :(得分:3)

嗯,不是真的。您的基本浏览器通常支持1种编程语言,javascript。

但是,您可以使用pythonanywhere"这是托管的python环境。

您也可以尝试skulpt这是jthon的javacript实现。我自己从未尝试过这个。

答案 1 :(得分:2)

您可以在内部网络上托管网站并从那里运行程序。阅读有关Python CGI编程的更多信息 here制作一个执行脚本并将结果打印为html页面的表单

例如,你可以有一个表单,要求在文本框中输入:名称:_,值:__,SUBMIT

按下按钮后,浏览器会向python程序发送请求,执行该请求,并将结果作为html网页显示回客户端。

此外,如果您使用的是学校计算机,则无需安装任何其他第三方模块。但是,在学校网络上托管网站之前,请问老师。

问题是你的程序是一个“文本冒险”,需要为CGI程序提供更多的输入/输出管理。

您可以将此答案用于其他项目。

无论如何,以下是设置服务器的步骤:

1)为您的网站创建一个文件夹,并添加一个“index.html”文件(可以是任何内容)

2)在文件夹中添加一个favicon.ico文件(这样可以加快连接速度)You can download this one

3)将此python程序放在文件夹中(它将用于托管网站)

import BaseHTTPServer
import CGIHTTPServer
import cgitb; cgitb.enable()
from socket import gethostbyname, gethostname


def server(port):
    server = BaseHTTPServer.HTTPServer
    handler = CGIHTTPServer.CGIHTTPRequestHandler
    server_address = ("", port)
    httpd = server(server_address, handler)
    print "Server %s:%s started" % (gethostbyname(gethostname()), str(port))
    httpd.serve_forever()

server(4) #You can change this. It is a port number

4)创建一个cgi-bin文件夹

5)要使网站可用,请执行在步骤3中创建的程序。要停止托管它,只需关闭python控制台。

6)当程序运行时,您可以进入浏览器并输入IP地址:端口作为URL。您将看到index.html页面和favicon.ico图标。任何连接到同一网络的人都可以访问该网站。您和您也可以通过输入http:/ localhost:port并使用“port”作为您设置的端口来访问浏览器中的网站

7)你需要自己管理的其余部分。我无法创建完整的脚本,因为我不知道你的程序中有什么。阅读开头提供的链接并修改您的程序,使其在浏览器中正常工作。

仅供参考:可以使用不同的端口同时托管多个网站或同一网站的实例。并且,您可以使用Python CGI设置和读取cookie

如果由于我的回答中的错误而无法正常工作,请发表评论。我会尝试解决它。​​

答案 2 :(得分:0)

到目前为止,所有答案都假设您的游戏可以作为网络应用呈现。如果您将程序(或部分程序)编写或隐藏到Javascript中,您可以这样做,这可能实际上不起作用,因为现有的编译器(例如pyjs)非常有限。

如果您在GUI中创建程序(使用'Tkinter','Pygame',wxPythonPyQt等),您最好的选择是将程序打包到Mac应用程序中py2apppyinstaller

相关问题