如何将变量传递给python cgi脚本

时间:2011-10-07 12:50:20

标签: python html url cgi

我想要做的是在cgi-bin中有一个python程序 由网站上的每个页面执行,并显示一行HTML 在每个页面上,每个文件对于每个文件都不同,但键入到URL 该网站上的文件。

我知道如何使用javascript获取网址(例如 http://constitution.org/cs_event.htm):

<script language="javascript">
    var myurl = document.location.href;
    document.write(myurl);
</script>
<br>
<script language="javascript">
    var myurl = document.location.href;
    document.write("<A href=\"" + myurl + "\">" + myurl + "<\/A>");
</script>

我知道如何创建一个打开页面来执行.py的链接 点击它时的脚本:

<a href="http://constitution.org/cgi-bin/copy01.py?myurl=myurl">Here</a>

到目前为止,这是python脚本:

#!/usr/bin/env python
# This outputs a copyright notice to a web page

import cgi
print "Content-Type: text/html\n"
form = cgi.FieldStorage()

thisurl = form.getvalue("myurl")

print """
<html><head></head>
<body>
"""

print """
Copyright &copy; 1995-2011 Constitution Society. Permission granted to copy with attribution for non-profit purposes.
"""

print """
</body></html>
"""

print thisurl

但是如何将变量值传递给.py并不是那么明显 脚本,让它自动显示该页面的URL javascript,或显示一行HTML,它将从一个 URL是键的字典,HTML行是数据。

最终,我希望能够使用单个.py脚本生成, 每个页面的所有页脚内容,可以从a维护 我可以编辑的单个文件,用于进行随处传播的更改。

1 个答案:

答案 0 :(得分:0)

CGI将当前请求的各种内容与脚本的shell环境相关联,您可以使用os.environ以正常方式访问该环境。特别是,os.environ['HTTP_HOST']将为您提供服务器名称,os.environ['SCRIPT_NAME']将为您提供路径。