2014-12-29 2 views
2

저는 3 개의 개별 응용 프로그램을 실행하지 않고도 배포하기 쉽고 devs를 설정할 수있는 하나의 응용 프로그램을 가지고있는 몇 개의 플라스크 API를 결합하여 사용하고 있습니다. 현재 각 api는 별도의 포트에 있습니다. 나는 세 가지 응용 프로그램을 실행하기 위해 DispatcherMiddleware를 사용하려고 해요하지만 당신은 지금werkzeug 별도의 포트가있는 DispatcherMiddleware

from frontend import app as frontend 
from TestApi import app as test 
from DevApi import app as dev 
from werkzeug.serving import run_simple 
from werkzeug.wsgi import DispatcherMiddleware 

app = DispatcherMiddleware(frontend, { 
    '/test':  test, 
    '/dev':  dev 
}) 
run_simple('localhost', 4000, app, use_reloader=True) 

처럼 4000에서 실행되는 모든 내 서비스를 접두사를 사용하지만 ID 것은 갖고 싶은 수있는 것처럼 지금까지 보인다는이

같은 것입니다
from frontend import app as frontend 
from TestApi import app as test 
from DevApi import app as dev 
from werkzeug.serving import run_simple 
from werkzeug.wsgi import DispatcherMiddleware 

app = DispatcherMiddleware(frontend, { 
    ':5000':  test, 
    ':6000':  dev 
}) 
#frontend runs on 4000, test runs on 5000, dev runs on 6000 
run_simple('localhost', 4000, app, use_reloader=True) 

나는 이치에 맞지 않거나 다른 설정을 사용하여 달성 할 수있는 방법이 있는지 묻습니다.

답변

2

나는 이것이 매우 연약하고 많은 불필요한 복잡성을 요구하는 어리석은 생각이라는 결론에 도달했습니다. 대신 모든 포트를 별도의 wsgi 인스턴스로 시작하는 bash 스크립트를 작성했습니다.

-1

응용 프로그램 발송에 대한 Flask 설명서에는 포트 기반 발송에 대한 힌트가 없습니다. 위에서 언급했듯이 Werkzeug를 사용하는 유일한 방법은 별개의 wsgi 인스턴스를 시작할 수 있습니다.

참고 :이 링크는 질문에 대답 할 수 http://flask.pocoo.org/docs/latest/patterns/appdispatch/

+0

하지만, 여기에 해답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [검토 중] (리뷰/저품절 포스트/13141363) – eisbehr

+0

주석 주셔서 감사합니다. 실제로 stackoverflow에 대한 댓글을 올리지는 않았습니다. 앞으로는이 점을 반드시 고려해 볼 것입니다. 그럼에도 불구하고 링크를 통해 많은 도움을 얻으므로 링크를 매우 유용하다고 생각합니다. – matt3o

관련 문제