Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 1, 2010 20:39:27

memba
От:
Зарегистрирован: 2010-12-01
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

Здравствуйте!

Предисловие: Имеется 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!!!”

Заранее благодарен.



Отредактировано (Дек. 1, 2010 20:40:25)

Офлайн

#2 Дек. 1, 2010 22:26:52

yanka
От:
Зарегистрирован: 2010-07-27
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

Согласно спецификации, wsgi приложение, в твоем случае это application, должно возвращать итерируемый объект(строка, список…), вот ты в своем примере и вернул строку “Hello”, ничто не мешает тебе в теле application вызвать функцию которая сгенерирует строку(итерируемый объект!) ее и вернешь…Ты сначала начни с питона, а не с wsgi)))



Отредактировано (Дек. 1, 2010 22:29:24)

Офлайн

#3 Дек. 1, 2010 23:56:52

iDima
От:
Зарегистрирован: 2010-03-17
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

можно это почитать http://self.maluke.com/webdev



Офлайн

#4 Дек. 2, 2010 12:36:08

memba
От:
Зарегистрирован: 2010-12-01
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

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. Не понятно.



Офлайн

#5 Дек. 2, 2010 14:58:53

yanka
От:
Зарегистрирован: 2010-07-27
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

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 -*-, исправь и все заработает



Офлайн

#6 Дек. 2, 2010 15:03:48

yanka
От:
Зарегистрирован: 2010-07-27
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

С питона, я имела ввиду, разберись с объектами питона, строками, списками, словарями и так далее, проще говоря тебе нужен хороший учебник. И еще при настройке wsgi на локальном сервере, создай логи ошибок, если вдруг возникнет ошибка типа 500 как было выше у тебя , то в первую очередь смотри лог, что там написал сервер и чем он не доволен)))



Офлайн

#7 Дек. 2, 2010 15:26:38

memba
От:
Зарегистрирован: 2010-12-01
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

с решёткой это я тут не докопировал… с ней тоже не работает.

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



Офлайн

#8 Дек. 2, 2010 15:32:48

yanka
От:
Зарегистрирован: 2010-07-27
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

memba
с решёткой это я тут не докопировал… с ней тоже не работает.

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



Офлайн

#9 Дек. 2, 2010 15:36:11

yanka
От:
Зарегистрирован: 2010-07-27
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

yanka
memba
с решёткой это я тут не докопировал… с ней тоже не работает.

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



Офлайн

#10 Дек. 2, 2010 15:43:23

memba
От:
Зарегистрирован: 2010-12-01
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

mod_wsgi и с чего начать

Не, если настройки сервера указаны с .htaccess, то перезагружать после изменения не надо.
Чтож, буду разбираться.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version