Yet another fastcgi-wsgi gateway
Alexandr Kutuzov
alleteam at gmail.com
Thu Sep 17 17:58:50 MSD 2009
17.09.2009, в 5:50, Sergey Shepelev написал(а):
> 2009/9/16 Alexandr Kutuzov <alleteam at gmail.com>:
>>
>> Дажнгу удалось запустить вот с такой прослойкой между рулем и
>> сиденьем:
>>
>
> Поздравляю с работающим велосипедом. :)
>
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 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)
============================================================
More information about the nginx-ru
mailing list