2013-10-14 4 views
1

У меня есть приложение Flask и вам нужно добавить функциональность сервера SOAP для интеграции с некоторыми сервисами. Для SOAP была выбрана библиотека Spyne. Я нашел, как объединить приложения Flask и Spyne wsgi вместе, используя werkzeug.wsgi.DispatcherMiddleware. Но теперь я столкнулся с проблемой получения конфигурации приложения Flask внутри представлений службы Spyne. Я обычно использую current_app.config['FOO'], чтобы получить настройки приложения Flask, но когда запрос приходит в приложение Spyne wsgi, у меня нет контекста приложения Flask. Мне нужен совет, как с этим справиться, пожалуйста.Spyne with Flask application context

+0

Я использую флягу но не знаю Spyne, просто предложение: как насчет использования файла конфигурации, совместно используемого между Flask и Spyne? См. [Конфигурация фляг из файлов] (http://flask.pocoo.org/docs/config/#configuring-from-files). –

+0

Да, могу. Но у моего приложения несколько конфигураций, и есть некоторая логика конфигурации. Лучше всего использовать экземпляр конфигурации только для чтения. Я попробую. Мой ум застрял в мысли, что у меня всегда есть контекст приложения флэша, это очень удобно. –

+0

Привет, Spyne. Можете ли вы представить рабочий пример? Я просмотрел страницу настроек приложения Flask, но не нашел многого в вашем конкретном случае использования. –

ответ

0

Я не знаю, как получить этот объект конфигурации за пределами контекста фляги, но если вы можете, вы можете установить setattr на экземпляр Application, который доступен через ctx.app в контексте @rpc Spyne.

+0

Это решение, которое я выбираю. В 'wsgi_call' я устанавливаю' ctx.udc.config' в 'flask_app.config' и использую его везде, где мне нужно. –

+0

Это правильный способ сделать это. Если вы можете поделиться своим кодом, я могу поместить его в каталог примеров Spyne в основном репо. Я не вижу событие wsgi_call в приведенном вами примере. –

+0

Я создал запрос на извлечение с флягой Пример https://github.com/arskom/spyne/pull/286 –

-1

Я предполагаю, что общий подход конфигурационный файл не представляется возможным для вас, в противном случае я бы для импорта из файла конфигурации в spyne например, от конфигурации импорта бла-бла просто мысли