2014-12-30 7 views
0

API를 노출하는 플라스크 애플리케이션이 있습니다.플라스크 청사진 라우팅 디버그 방법

브라우저에서이 API를 누르면 http://admin.phones.dev/api/v2.0/manufacturers 상태 200과 예상대로 응답이 나타납니다. 요청 개체 :

{ 
    'view_args':{}, 
    'cookies':{ 
     'session':u'eyJfaWQiOnsiIGIiOiJPREJsTURrNFlUZGtNRFkzWVdKbU1XRmlNalJpTldZelkySmhaVGhtT1RjPSJ9fQ.B4PxFw.4ytdqip7jIF3WJLqKyItDf8Cuu0' 
    }, 
    'shallow':False, 
    'url_rule':<Rule '/manufacturers/' (HEAD, OPTIONS, GET) -> manufacturers.index>, 
    'headers':EnvironHeaders( [ 
     ('Cookie', u'session=eyJfaWQiOnsiIGIiOiJPREJsTURrNFlUZGtNRFkzWVdKbU1XRmlNalJpTldZelkySmhaVGhtT1RjPSJ9fQ.B4PxFw.4ytdqip7jIF3WJLqKyItDf8Cuu0'), 
     ('Content-Length', u''), 
     ('User-Agent', u'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0  ) Gecko/20100101 Firefox/31.0'), 
     ('Connection', u'keep-alive'), 
     ('Host', u'admin.phones.dev:5000'), 
     ('Cache-Control', u'max-age=0'), 
     ('Accept', u'text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8'), 
     ('Accept-Language', u'en-US, en;q=0.5'), 
     ('Content-Type', u''), 
     ('Accept-Encoding', u'gzip, deflate') 
    ] ), 
    'environ':{ 
     'wsgi.multiprocess':False, 
     'HTTP_COOKIE':'session=eyJfaWQiOnsiIGIiOiJPREJsTURrNFlUZGtNRFkzWVdKbU1XRmlNalJpTldZelkySmhaVGhtT1RjPSJ9fQ.B4PxFw.4ytdqip7jIF3WJLqKyItDf8Cuu0', 
     'SERVER_SOFTWARE':'Werkzeug/0.9.4', 
     'SCRIPT_NAME':'/api/v2.0', 
     'REQUEST_METHOD':'GET', 
     'PATH_INFO':'/manufacturers', 
     'SERVER_PROTOCOL':'HTTP/1.1', 
     'QUERY_STRING':'', 
     'werkzeug.server.shutdown':<function shutdown_server at 0xb54a472c>, 
     'CONTENT_LENGTH':'', 
     'HTTP_USER_AGENT':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0', 
     'HTTP_CONNECTION':'keep-alive', 
     'SERVER_NAME':'0.0.0.0', 
     'REMOTE_PORT':45113, 
     'wsgi.url_scheme':'http', 
     'SERVER_PORT':'5000', 
     'werkzeug.request':  <Request 'http:  //admin.phones.dev:5000  /api/v2.0/manufacturers'  [ 
     GET 
     ]  >, 
     'wsgi.input':<socket._fileobject object at 0xb549a5ec>, 
     'HTTP_HOST':'admin.phones.dev:5000', 
     'wsgi.multithread':False, 
     'HTTP_CACHE_CONTROL':'max-age=0', 
     'HTTP_ACCEPT':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
     'wsgi.version':(1, 0), 
     'wsgi.run_once':False, 
     'wsgi.errors':<open file '<stderr>', mode 'w' at 0xb751b0d0>, 
     'REMOTE_ADDR':'192.168.33.1', 
     'HTTP_ACCEPT_LANGUAGE':'en-US,en;q=0.5', 
     'CONTENT_TYPE':'', 
     'HTTP_ACCEPT_ENCODING':'gzip, deflate' 
    } 
} 

이제 워드 프레스 앱이 있고 wp_remote_get()을 사용하여이 API에 연결하려고합니다. 그 요청이 플라스크 애플리케이션에 도달한다는 것을 알 수 있지만 어떤 이유인지 그것은 404를 반환합니다. 다시 객체 요청 :

{ 
    'headers':EnvironHeaders( [ 
     ('Content-Length', u''), 
     ('User-Agent', u'WordPress/3.9.1; http://cbp-v2.localhost.com'), 
     ('Host', u'admin.phones.dev'), 
     ('Content-Type', u''), 
     ('Accept-Encoding', u'deflate;q=1.0, compress;q=0.5, gzip;q=0.5') 
    ] ), 
    'cookies':{ 

    }, 
    'shallow':False, 
    'environ':{ 
     'wsgi.multiprocess':False, 
     'SERVER_SOFTWARE':'Werkzeug/0.9.4', 
     'SCRIPT_NAME':'/api/v2.0', 
     'REQUEST_METHOD':'GET', 
     'PATH_INFO':'/manufacturers', 
     'SERVER_PROTOCOL':'HTTP/1.0', 
     'QUERY_STRING':'', 
     'werkzeug.server.shutdown':<function shutdown_server at 0xb54a479c>, 
     'CONTENT_LENGTH':'', 
     'HTTP_USER_AGENT':'WordPress/3.9.1; http://cbp-v2.localhost.com', 
     'SERVER_NAME':'0.0.0.0', 
     'REMOTE_PORT':45115, 
     'wsgi.url_scheme':'http', 
     'SERVER_PORT':'5000', 
     'werkzeug.request':  <Request 'http://admin.phones.dev/api/v2.0/manufacturers'  [ 
     GET 
     ]  >, 
     'wsgi.input':<socket._fileobject object at 0xb549a72c>, 
     'HTTP_HOST':'admin.phones.dev', 
     'wsgi.multithread':False, 
     'wsgi.version':(1, 0), 
     'wsgi.run_once':False, 
     'wsgi.errors':<open file '<stderr>', mode 'w' at 0xb751b0d0>, 
     'REMOTE_ADDR':'192.168.33.1', 
     'CONTENT_TYPE':'', 
     'HTTP_ACCEPT_ENCODING':'deflate;q=1.0, compress;q=0.5, gzip;q=0.5' 
    }, 
    'url': u'http://admin.phones.dev/api/v2.0/manufacturers', 
    'shallow':False, 
    'headers':EnvironHeaders( [ 
     ('Content-Length', u''), 
     ('User-Agent', u'WordPress/3.9.1; http://cbp-v2.localhost.com'), 
     ('Host', u'admin.phones.dev'), 
     ('Content-Type', u''), 
     ('Accept-Encoding', u'deflate;q=1.0, compress;q=0.5, gzip;q=0.5') 
    ] ), 
    'environ':{ 
     'wsgi.multiprocess':False, 
     'SERVER_SOFTWARE':'Werkzeug/0.9.4', 
     'SCRIPT_NAME':'/api/v2.0', 
     'REQUEST_METHOD':'GET', 
     'PATH_INFO':'/manufacturers', 
     'SERVER_PROTOCOL':'HTTP/1.0', 
     'QUERY_STRING':'', 
     'werkzeug.server.shutdown':<function shutdown_server at 0xb54a479c>, 
     'CONTENT_LENGTH':'', 
     'HTTP_USER_AGENT':'WordPress/3.9.1; http://cbp-v2.localhost.com', 
     'SERVER_NAME':'0.0.0.0', 
     'REMOTE_PORT':45115, 
     'wsgi.url_scheme':'http', 
     'SERVER_PORT':'5000', 
     'werkzeug.request':  <Request 'http://admin.phones.dev/api/v2.0/manufacturers'  [ 
     GET 
     ]  >, 
     'wsgi.input':<socket._fileobject object at 0xb549a72c>, 
     'HTTP_HOST':'admin.phones.dev', 
     'wsgi.multithread':False, 
     'wsgi.version':(1, 0), 
     'wsgi.run_once':False, 
     'wsgi.errors':<open file '<stderr>', mode 'w' at 0xb751b0d0>, 
     'REMOTE_ADDR':'192.168.33.1', 
     'CONTENT_TYPE':'', 
     'HTTP_ACCEPT_ENCODING':'deflate;q=1.0, compress;q=0.5, gzip;q=0.5' 
    }, 
    'routing_exception': <NotFound '404:Not Found'> 
} 

제 질문은 어떻게 디버깅합니까? 나는 파이썬과 플라스크에 상대적으로 새로운 편이라.

답변

1

컬이 빠졌고 설치 후 다시 작동합니다.