ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Yet another fastcgi-wsgi gateway



17.09.2009, в 5:50, Sergey Shepelev написал(а):

2009/9/16 Alexandr Kutuzov <alleteam@xxxxxxxxx>:

Дажнгу удалось запустить вот с такой прослойкой между рулем и сиденьем:


Поздравляю с работающим велосипедом. :)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import sys, os

sys.path.append('/Library/Python/2.5/site-packages/ipython-0.9.1- py2.5.egg') sys.path.append('/Library/Python/2.5/site-packages/pyftpdlib-0.5.1- py2.5.egg') sys.path.append('/Library/Python/2.5/site-packages/PyYAML-3.08- py2.5-macosx-10.5-i386.egg') sys.path.append('/Library/Python/2.5/site-packages/ MySQL_python-1.2.2-py2.5-macosx-10.5-i386.egg') sys.path.append('/Library/Python/2.5/site-packages/Jinja2-2.1.1- py2.5-macosx-10.5-i386.egg') sys.path.append('/Library/Python/2.5/site-packages/ flup-1.0.3.dev_20090612-py2.5.egg') sys.path.append('/Library/Python/2.5/site-packages/mutagen-1.16- py2.5.egg') sys.path.append('/Library/Python/2.5/site-packages/Django-1.1- py2.5.egg')


Вы знаете, что всё должно работать с одним
sys.path.append("/Library/Python/2.5/site-packages") да?

import django.core.handlers.wsgi

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
_handler = django.core.handlers.wsgi.WSGIHandler()

def wsgi_app_handler(environ, start_response):
   return list(_handler(environ, start_response))
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Стоило посмотреть, как это делают в других WSGI-HTTP серверах. В
каждом есть несколько модулей, типа example, wsgi, django. Из-за
особенностей, к ней другой подход, да.

забавно что возвращает она httpresponse объект, поэтому приходится приводить
к list-у

Я не защищаю джангу, но возвращаемое значение хорошо документировано.
И в джанге и в PEP333.
WSGI приложение должно возвращать итераблю (подразумевается
какой-нибудь ленивый генератор ответа, возможна долгая выдача через
chunked encoding). HttpResponse итерируется. В чем проблема? Зачем
список?

стандартные пути к пакетам fastpy не наследует, поэтому то что требуется
должно прописываться руками(пока вот так вот)
ну и пути у вас будут свои


И это уже совсем не nginx.


Сделал возможность возврата из коллбэка итерабельных объектов,
по каким-то странным причинам лист в С-апи не итерабельный пришлось его оставить тоже.

Вариант поправленного хэндлера для джанги:

============================================================
import sys, os

sys.path.append('/Library/Python/2.5/site-packages/ipython-0.9.1- py2.5.egg') sys.path.append('/Library/Python/2.5/site-packages/pyftpdlib-0.5.1- py2.5.egg') sys.path.append('/Library/Python/2.5/site-packages/PyYAML-3.08-py2.5- macosx-10.5-i386.egg') sys.path.append('/Library/Python/2.5/site-packages/MySQL_python-1.2.2- py2.5-macosx-10.5-i386.egg') sys.path.append('/Library/Python/2.5/site-packages/Jinja2-2.1.1-py2.5- macosx-10.5-i386.egg') sys.path.append('/Library/Python/2.5/site-packages/ flup-1.0.3.dev_20090612-py2.5.egg') sys.path.append('/Library/Python/2.5/site-packages/mutagen-1.16- py2.5.egg') sys.path.append('/Library/Python/2.5/site-packages/Django-1.1- py2.5.egg')

import django.core.handlers.wsgi

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
_handler = django.core.handlers.wsgi.WSGIHandler()

def wsgi_app_handler(environ, start_response):
    return _handler(environ, start_response)
============================================================





 




Copyright © Lexa Software, 1996-2009.