對不明確的問題,我不確定我能說得更好。所以讓我來解釋我的問題。使用DispatcherMiddleware實例結合使用2個Flask應用程序導致第二個應用程序使用404結果
我有Flask應用程序libindic,它有2個Flask應用程序,一個是前端,另一個是api。所以我wsgi.py如下
from werkzeug.serving import run_simple
from werkzeug.wsgi import DispatcherMiddleware
from silpa import api, frontend
import os
conffile = os.path.join(os.path.dirname(__file__), "etc", "silpa.conf")
application = DispatcherMiddleware(frontend.create_app(conffile),
{'/api': api.create_app(conffile)})
if __name__ == "__main__":
run_simple('0.0.0.0', 5000, application,
use_reloader=True, use_debugger=True)
前端接入工作正常,但是當我打/ API/JSONRPC我得到404錯誤返回。這條規則被定義爲silpa/API/jsonrpc.py
bp = Blueprint('api_jsonrpc', __name__, url_prefix='/api')
@route(bp, '/JSONRPC', methods=['POST'])
def handle_jsonrpc_call():
...
如下當我打印應用程序和application.app和application.mounts在Python解釋器的價值我看到folllowing
>>> application.app
<Flask 'silpa.frontend'>
>>> application.mounts
{'/api': <Flask 'silpa.api'>}
我我無法弄清楚爲什麼/ api/JSONRPC會導致404錯誤。我不知道如何調試它。我沒有檢查api應用程序的app.url_map,我可以看到在那裏註冊的/ api/JSONRPC的規則。
如果有人能告訴我我可能會做錯什麼,這將是一個很大的幫助。
'@ bp.route('/ JSONRPC',methods = ['POST'])'? –
@ lord63.j抱歉,我不明白你想說什麼。 bp.route在路由裝飾器內完成。 – copyninja
'@route(bp,'/ JSONRPC',methods = ['POST'])'this line can work? –