2009-04-28 257 views
0

这是我的问题... 我有一个python脚本,一旦从命令行执行,执行所需的操作并退出。如果在执行过程中,程序无法做出选择,他会提示用户并要求他们作出决定! 现在,我必须实现一个Web界面,这里出现了问题......我创建了一个简单形式的htm文件,一旦用户“提交”,他将参数传递给只包含一行的cgi脚本并运行我的Python程序!并似乎工作... 我的问题是:如果它发生的程序需要问用户的选择,我怎么能返回这个值到我的Python脚本!要提示用户选择我需要创建一个可能的选择的网页...有人知道我怎么能打开一个网页与Python? 第二个也是最重要的问题是:如何从网页返回值到我的“原始”python模块?在蟒蛇,我只想做一个CGI和Python

回报的选择

但与网页我不知道怎么办呢!

概述: 1.从网页开始,我运行一个cgi脚本!完成

  • 这个CGI脚本运行我的Python程序...完成

  • 如果程序无法作出决定,

    3A创建Web有可能的选择页面我能做到这一点

    3B显示所创建的网页????????

    3C的性反应恢复到原来的pyhon模块????????

  • 在此先感谢

    +0

    我建议你阅读一些关于python和CGI的教程材料:http://www.google.com/search?q=python+cgi+example – codeape 2009-04-28 09:11:45

    回答

    9

    “有谁知道我可以打开网页与Python的第二个也是最重要的问题是:我如何从一个网页返回一个值我的”原“python模块??”

    这一切都很简单。

    但是,您需要了解网络真正的。您需要阅读Web服务器,浏览器和HTTP协议。

    以下是黄金法则:Web服务器通过网页响应HTTP请求。

    该规则的第二部分是:请求是一个URL和一个方法(GET或POST)。还有更多的要求,但这是重要的一部分。

    这就是发生的一切。所以,你必须把你的用例改写成上面的形式。

    人点击书签;浏览器发出一个空请求(到“/”的URL)并获取表单。

    人填写表单,点击按钮;浏览器POST的请求(到表单中的URL)并获得两件事情之一。

    • 如果你的脚本工作,他们得到他们的页面,上面写着它的所有工作。

    • 如果您的脚本需要信息,他们会得到另一个表单。

    人填写表单,点击按钮;浏览器POST的请求(到表单中的URL),并获取最终页面,说明它的一切工作。

    您可以通过“CGI”脚本完成所有这些操作。使用mod_wsgi并将你的东西插入Apache Web服务器。

    或者,你可以得到一个web框架。 Django,TurboGears,web.py等。即使你认为你的操作很简单,你也会对框架感到高兴。

    0

    网页不返回值,而且他们不是程序 - 网页是HTML的只是一个静态的集合或类似的东西,其浏览器可以显示。您的CGI脚本不能等待用户发送响应 - 它必须将网页发送给用户并终止。但是,如果浏览器根据该页面中的数据对您的CGI程序(或另一个CGI程序)执行第二个查询,那么您可以从那一点收集信息并继续。

    1

    我想你可以修改Python脚本来返回一个错误,如果它需要一个选择并接受选择作为参数。如果你这样做,你可以检查你的CGI脚本的返回值,并使用它来适当地调用Python脚本并将信息返回给用户。

    是否有一个理由,为什么你不能直接调用python脚本?如果你想避免中间CGI,我怀疑你最终会得到一个整洁的实现。

    您正在使用哪种网络服务器?什么cgi语言? Perl可能吗?

    0

    如果在python中编写cgi,可能会更容易,然后从cgi脚本中调用您的python脚本。

    更新脚本,以独立于逻辑的UI。 然后,将脚本与(python)cgi脚本进行接口应该相对容易。

    对于Python CGI参考: Five minutes to a Python CGI

    0

    http://docs.python.org/library/cgihttpserver.html

    我觉得首先你需要将你的代码从你的界面分离。当你运行一个脚本时,它会吐出一个页面。您可以使用url参数将参数传递给它。理想情况下,你想做你的逻辑,然后将结果传递给python打印到cgi的模板。