Найти - Пользователи
Полная версия: mod_wsgi и с чего начать
Начало » Web » mod_wsgi и с чего начать
1 2
memba
Здравствуйте!

Предисловие: Имеется 7-ми летний опыт работы с PHP… в институте 5 лет программировали на Си. Решил сесть за Python.

Сказано-сделано, скачал Python 2.7, привязал его через mod_wsgi к Apache, почитал про протокол WSGI

из всего понял что в программе должно быть:

# -*- coding: cp1251 -*-

def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])

return "Hello"
Отлично, функция application автоматически вызывается сервером по средствам mod_wsgi…
environ - содержит всякие переменные окружения
start_response - Callback уведамляющий сервер какой статус запроса и заголовки нужно передать клиенту
И ещё она что-то должна вернуть.

На этом я встал.
Дайте пожалуйста какой-нибудь пример, что дальше… допустим у меня есть функция

def test(str):
return str
Как вывести её результат на экран?

Или хотя бы элементарно, хочу куда-нибудь вставить print “Hello World!!!”

Заранее благодарен.
yanka
Согласно спецификации, wsgi приложение, в твоем случае это application, должно возвращать итерируемый объект(строка, список…), вот ты в своем примере и вернул строку “Hello”, ничто не мешает тебе в теле application вызвать функцию которая сгенерирует строку(итерируемый объект!) ее и вернешь…Ты сначала начни с питона, а не с wsgi)))
iDima
можно это почитать http://self.maluke.com/webdev
memba
yanka

С Питона, это Вы имеете в виду просто, CGI приложения?

и на счёт вызова моей функции. делаю так:

 -*- coding: cp1251 -*-

def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
t = test("Hello")
return t

def test(str):
return str
Вылезает ошибка 500. Не понятно.
yanka
memba
yanka

С Питона, это Вы имеете в виду просто, CGI приложения?

и на счёт вызова моей функции. делаю так:

 -*- coding: cp1251 -*-

def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
t = test("Hello")
return t

def test(str):
return str
Вылезает ошибка 500. Не понятно.
У тебя ошибка в коде, в первой строке , ее необходимо начинать с решетки #-*- coding: cp1251 -*-, исправь и все заработает
yanka
С питона, я имела ввиду, разберись с объектами питона, строками, списками, словарями и так далее, проще говоря тебе нужен хороший учебник. И еще при настройке wsgi на локальном сервере, создай логи ошибок, если вдруг возникнет ошибка типа 500 как было выше у тебя , то в первую очередь смотри лог, что там написал сервер и чем он не доволен)))
memba
с решёткой это я тут не докопировал… с ней тоже не работает.

а с книгой, читаю “Python. Подробный справочник, 4-е издание”, я таких хороших книг давно не видел, кратко, понятно и всё есть. Главное что все модули описаны, и примеры как для Python 2.6 так и для 3.0 если есть отличия.
yanka
memba
с решёткой это я тут не докопировал… с ней тоже не работает.

а с книгой, читаю “Python. Подробный справочник, 4-е издание”, я таких хороших книг давно не видел, кратко, понятно и всё есть. Главное что все модули описаны, и примеры как для Python 2.6 так и для 3.0 если есть отличия.
Ты смотрел лог ошибок? может быть еще проблема с отступами, в любом случае не видя лога трудно сказать, одно только могу сказать, пример кода что ты дал вполне корректный и должен работать, хотя несколько надуманный( но ты же учишься), книга да - отличная я ее еще читала в английском варианте
yanka
yanka
memba
с решёткой это я тут не докопировал… с ней тоже не работает.

а с книгой, читаю “Python. Подробный справочник, 4-е издание”, я таких хороших книг давно не видел, кратко, понятно и всё есть. Главное что все модули описаны, и примеры как для Python 2.6 так и для 3.0 если есть отличия.
Ты смотрел лог ошибок? может быть еще проблема с отступами, в любом случае не видя лога трудно сказать, одно только могу сказать, пример кода что ты дал вполне корректный и должен работать, хотя несколько надуманный( но ты же учишься), книга да - отличная я ее еще читала в английском варианте
Ах да забыла, после изменения файла иногда нужно перезапускать апач или используй команду touch
memba
Не, если настройки сервера указаны с .htaccess, то перезагружать после изменения не надо.
Чтож, буду разбираться.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB