Форум сайта python.su
Решил объеденить эти два вопроса ибо не плодить темы.
Итак первый:
Как осуществить http редирект с помощью Python, искал ответ, но пока не нашёл и поэтому использую
< .meta http-equiv='Refresh' content='1; url="url"' />
def parseConfig(self, confFile):
config = ConfigParser.ConfigParser()
config.read(confFile)
try:
self["mysql_host"] = config.get('MySQL', 'host')
self["mysql_user"] = config.get('MySQL', 'user')
self["mysql_pass"] = config.get('MySQL', 'pass')
self["mysql_name"] = config.get('MySQL', 'name')
except :
print "Config File not found"
sys.exit()
Отредактировано (Янв. 21, 2008 22:20:26)
Офлайн
windoctorЧто на сервере?
Решил объеденить эти два вопроса ибо не плодить темы.
Итак первый:
Как осуществить http редирект с помощью Python, искал ответ, но пока не нашёл и поэтому используюно хочеться осуществлять с помощью заголовков.< .meta http-equiv='Refresh' content='1; url="url"' />
Но как ни странно под вендой этод метод отработал, а вот под unix не хочет ни в какую (ругается что секция не найдена), подскажите пожалуйста как решить проблемуКонфиг в студию
Офлайн
windoctorсмотрим стэктрейс… у тебя траблы с путем до файла или с парсингом???Но как ни странно под вендой этод метод отработал, а вот под unix не хочет ни в какую (ругается что секция не найдена), подскажите пожалуйста как решить проблемуdef parseConfig(self, confFile):
config = ConfigParser.ConfigParser()
config.read(confFile)
try:
self["mysql_host"] = config.get('MySQL', 'host')
self["mysql_user"] = config.get('MySQL', 'user')
self["mysql_pass"] = config.get('MySQL', 'pass')
self["mysql_name"] = config.get('MySQL', 'name')
except :
print "Config File not found"
sys.exit()
Отредактировано (Янв. 22, 2008 14:44:22)
Офлайн
cybergrindэто тебе надо к разработчикам питона идти. Используется стандартный модуль ConfigParser.
ну что это за название, где тут ООП =) назвал бы метод getOptions или в этом роде, а то недолго самому запутаться что отвечает за парсинг конфига
Офлайн
я не про модуль, я про его собственный метод. хотя в конечно итоге именование не сама важная вещь ;)
Офлайн
j2aНе понял вопроса, мне нужно просто отредиректить на другой урл и всё.
Что на сервере?
Traceback (most recent call last):
File "/home/windoctor/www/icq-py/pir.py", line 31, in <module>
lnk.getOptions('config.ini')
File "/home/windoctor/www/icq-py/pir.py", line 16, in getOptions
self["mysql_host"] = config.get('MySQL', 'host')
File "/usr/lib/python2.5/ConfigParser.py", line 511, in get
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'MySQL'
[MySQL]
host=locajhst
user=root
pass=python
name=py
Отредактировано (Янв. 23, 2008 01:40:48)
Офлайн
windoctorЧто-то похожее:j2aНе понял вопроса, мне нужно просто отредиректить на другой урл и всё.
Что на сервере?
Как пхп есть header ('Location: url'); вот мне нужно что-то похоже на питоне.
Сам конфигКод, хоть и ужасный, но рабочий. С конфигом ничего криминального. Ищи проблемы в других местах.[MySQL]
host=locajhst
user=root
pass=python
name=py
Офлайн
print 'Location: %s' % url
import ConfigParser
def getOptions(config_file):
config = ConfigParser.ConfigParser()
config.read(config_file)
options = {}
for field in ('host', 'user', 'pass', 'name'):
options['mysql_%s' % field] = config.get('MySQL', field)
return options
list = getOptions ('config.ini')
print list
Traceback (most recent call last):
File "/home/windoctor/www/icq-py/hello.py", line 11, in <module>
list = getOptions ('config.ini')
File "/home/windoctor/www/icq-py/hello.py", line 9, in getOptions
options['mysql_%s' % field] = config.get('MySQL', field)
File "/usr/lib/python2.5/ConfigParser.py", line 511, in get
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'MySQL'
Офлайн
Как пхп есть header ('Location: url'); вот мне нужно что-то похоже на питоне.Apache2 mod_python Documentation
""" internal_redirect(new_uri) Internally redirects the request to the new_uri. new_uri must be a string. The httpd server handles internal redirection by creating a new request object and processing all request phases. Within an internal redirect, req.prev will contain a reference to a request object from which it was redirected. """
from mod_python import apache def redirect_to(req, url, status_code = 302): """ Usage: def some_view(req): ... redirect_to(req, '/path/to/uri/') """ req.status_code = status_code req.headers_out.update({'Location': url}) req.write('') return apache.OK
Офлайн
playpauseandstop, проблема в том, что на сервере не установлен mod_python, скрипты выполняются в папке cgi-bin.
Офлайн