2014-02-19 46 views
0

我目前正在開發我的第一個Heroku python瓶web應用程序,我正在用gunicorn和工頭在本地測試它。當我嘗試使用url參數中編碼的json進行GET請求時,我總是收到400個錯誤的請求響應。但是,我無法弄清楚發生了什麼問題。服務器日誌不會打印任何內容。沒有記錄錯誤,也沒有關於收到請求的消息。調試Flask應用程序 - 如何找出導致400錯誤請求錯誤的原因?

我能做些什麼來獲得更多關於錯誤的信息?我是否需要配置其中一個工具來更詳細地記錄錯誤?任何幫助將不勝感激。謝謝。

app.debug = True的方式)

回答

-1

您使用的藍圖?根據我的經驗,藍圖可以讓任何輸出在控制檯中顯示出來。下面是我用它來解決這個問題是一個簡單的記錄功能:

import logging 
log = logging.getLogger(__name__) 
logging.basicConfig(format="[%(asctime)s] %(levelname)s:%(message)s") 
log.setLevel(logging.DEBUG) 

def logging_fun(method, remote_addr): 
    log.info('HTTP %s request from %s' % (method, remote_addr)) 

@blueprint.route('/servers', methods=['GET']) 
def list_servers(): 
    """Gives a list of all registered servers.""" 
    logging_fun(request.method, request.remote_addr) 

你也可以把它遍歷和打印request.args如果你需要看到,如果URL參數的存在。

+0

感謝您的建議。但是,我沒有使用藍圖。值得注意的是,綁定到我的網址的函數,例如'list_servers',似乎永遠不會在我的web應用程序中被調用。 – Pwnosaurus

0

嗯,我不知道這是什麼原因導致我的問題,但我意識到我作爲URL參數傳遞的JSON相當長(在URL編碼之前大約8000個字符)。另一個SO問題表明典型的限制大約是2000個字符。我現在通過使用POST請求解決了我的問題,但是如果有人有任何提示,我仍然很想知道如何從Web應用程序獲取更詳細的調試信息。