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