Flask 응용 프로그램이 있고 일부 서비스와 통합하기 위해 SOAP 서버 기능을 추가해야합니다. Spyne 라이브러리가 SOAP 용으로 선택되었습니다. 나는 werkzeug.wsgi.DispatcherMiddleware를 사용하여 Flask와 Spyne wsgi 응용 프로그램을 함께 결합하는 방법을 발견했습니다. 하지만 이제는 Spyne 서비스 뷰에서 Flask 앱 설정을 얻는 문제에 직면했습니다. 보통 current_app.config['FOO']
을 사용하여 Flask 응용 프로그램 설정을 가져 오지만 요청이 Spyne wsgi 응용 프로그램에 오면 Flask 응용 프로그램 컨텍스트가 없습니다. 어떻게 처리 할 지 조언이 필요합니다.Flask with Flask 응용 프로그램 컨텍스트
답변
Flask 컨텍스트 외부에서 해당 구성 개체를 유지하는 방법을 모르겠지만 가능하다면 Application
인스턴스에 설정할 수 있습니다.이 인스턴스는 Spyne의 @rpc 컨텍스트 내에서 ctx.app
을 통해 액세스 할 수 있습니다.
이것은 제가 선택한 해결책입니다. 'wsgi_call'에서'ctx.udc.config'를'flask_app.config'로 설정하고 필요한 곳에 사용합니다. –
이것이 올바른 방법입니다. 코드를 공유 할 수 있다면 주 repo의 Spyne examples 디렉토리에 넣을 수 있습니다. 내가 공유 한 예제에서 wsgi_call 이벤트가 표시되지 않습니다. –
플라스크 예제로 풀 요청을 만들었습니다. https://github.com/arskom/spyne/pull/286 –
내가 공유 설정 파일 접근 방식을 가정하고, 그렇지 않으면 내가 설정 가져 오기 ㅋ ㅋ ㅋ ㅋ 내가 플라스크를 사용하고
단지 생각에서 spyne 예에서 config 파일에서 가져 오기에 갈 것입니다, 당신을 위해 할 수 없습니다 그러나 Spyne를 모르겠다. 단지 제안 : Flask와 Spyne 사이에서 공유되는 설정 파일을 사용하는 방법은? [Flask 파일에서 구성하기] (http://flask.pocoo.org/docs/config/#configuring-from-files)를 참조하십시오. –
예, 할 수 있습니다. 하지만 내 응용 프로그램은 몇 가지 구성을 가지고 있으며 몇 가지 구성 논리가 있습니다. 읽기 전용 구성 인스턴스를 공유하는 것이 좋습니다. 나는 시도 할 것이다. 내 마음은 내가 항상 플라스크 앱 컨텍스트를 가지고 있다는 생각에 빠져있다. 매우 편리하다. –
안녕하세요, Spyne 관리자가 여기 있습니다. 실천 사례를 제공해 줄 수 있습니까? Flask 앱 설정 페이지를 살펴본 적이 있지만 특정 유스 케이스에 대해별로 알지 못했습니다. –