小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Django調(diào)試方法兩則

 quasiceo 2017-04-13

web程序調(diào)試起來和桌面程序有著很大的差別,對于Django程序來說調(diào)試更是個問題,雖然現(xiàn)在有第三方的調(diào)試工具robhudson-django-debug-toolbar,但使用起來并不是很方便,而且很多人習(xí)慣于通過print來調(diào)試,這樣方便快捷。下面就介紹兩種簡單的調(diào)試方法:

1.充分利用Django的error page

Django的error page功能很強大,能提供詳細的traceback,包括局部變量的值,以及一個純文本的異常信息。擁有同 phpinfo() 一樣的作用,可以展示當前應(yīng)用的相關(guān)設(shè)置,包括請求中的 GET, POST and COOKIE 數(shù)據(jù)以及HTTP環(huán)境中的所有重要META fields。

可以通過

assert False
assert False, request.GET

來觸發(fā)Django的錯誤頁面,進而進行調(diào)試工作

2.輸出log到開發(fā)服務(wù)器終端中

借助python的logging模塊

在setting.py中添加如下配置

import logging
logging.basicConfig(
    level = logging.DEBUG,
    format = '%(asctime)s %(levelname)s %(message)s',
)

在需要輸出log信息的地方可以這樣調(diào)用

import logging
logging.debug("A log message")

這樣一來就能在開發(fā)服務(wù)器的終端中看到想要輸出的log,如果想將log信息記錄到指定文件中去,調(diào)整logging的basicConfig即可,如下所示:

logging.basicConfig(
    level = logging.DEBUG,
    format = '%(asctime)s %(levelname)s %(message)s',
    filename = '/tmp/myapp.log',
    filemode = 'w'
)

有時我們發(fā)現(xiàn)我們的程序大部分情況下運行正常,只在特定環(huán)境中出現(xiàn)錯誤,此時可以使用 traceback module 記錄當前棧存信息  ,方便調(diào)試。具體調(diào)用方法如下所示:

import logging, traceback, pprint
def my_buggy_function(arg):
    ...
    if error_condition:
        stack = pprint.pformat(traceback.extract_stack())
        logging.debug('An error occurred: %s' % stack)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多