Как вывести информацию журнала в CGI-файле Python? - PullRequest
1 голос
/ 14 октября 2011

Я использую cgi (python) в качестве прокси для решения междоменной проблемы запроса ajax.Я хочу записать некоторую ключевую информацию о каждом запросе, например, URL, и сохранить эту информацию в файл на сервере.что я должен делать?Я пытался использовать модуль регистрации Python или модуль ввода-вывода файла, но в этой среде ни один из них не работает.

#!C:/Python25/python.exe -u

import urllib2
import cgi
import sys, os

f = open("./proxy.txt","a")

method = os.environ["REQUEST_METHOD"]
f.write(method + "\n")
if method == "POST":
    qs = os.environ["QUERY_STRING"]
    d = cgi.parse_qs(qs)
    if d.has_key("url"):
        url = d["url"][0]

else:
    fs = cgi.FieldStorage()
    url = fs.getvalue('url')

try:
    y = urllib2.urlopen(url)
f.write(url + "\n")
f.close()
except Exception, E:
    print "Status: 500 Unexpected Error"
    print "Content-Type: text/plain"
    print 
    print "Some unexpected error occurred. Error text was:", E

файл proxy.txt остается пустым после запроса со стороны клиента ...

1 Ответ

1 голос
/ 14 октября 2011

Вероятно, это сочетание использования относительного пути и прав доступа к файлу ...

Попробуйте изменить эту строку:

f = open("./proxy.txt","a")

на абсолютный путь, например

f = open("C:\Users\foo\Desktop\proxy.txt","a")

Убедитесь, что эффективный пользователь, выполняющий скрипт cgi, имеет разрешение на запись по выбранному вами абсолютному пути ...

...