Как передать переменную в скрипт Python CGI - PullRequest
1 голос
/ 07 октября 2011

То, что я хочу сделать, это иметь одну программу на Python в cgi-bin, которая выполняется каждой из множества страниц сайта и отображает строку HTML на каждой странице, которая отличается для каждого файла, но привязана к URL этот файл на сайте.

Я знаю, как получить 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, все содержимое нижнего колонтитула каждой страницы, которое может поддерживаться с один файл, который я могу редактировать, чтобы вносить изменения, которые распространяются повсюду.

1 Ответ

0 голосов
/ 07 октября 2011

CGI помещает различные вещи, связанные с текущим запросом, в среду оболочки скрипта, к которой вы можете обращаться обычным способом с помощью os.environ.В частности, os.environ['HTTP_HOST'] даст вам имя сервера, а os.environ['SCRIPT_NAME'] - вам путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...