djangot 除錯的兩種方法:
1.常用的print方法,由於使用python manage.py runserver實際是透過啟動子程序的方式,子程序的標準輸出不知道是到哪兒了,所以只有讓除錯伺服器不以子程序的方式進行,可以用如下命令:python manage.py runserver --noreload,這樣print出來的資訊就可以在終端看到了,但是這樣作,每次python程式碼有修改,就要重啟伺服器。
2.輸出log到終端: LOGGING = { "version": 1, "disable_existing_loggers": False, "formatters": { "simple": { "format": "%(levelname)s %(message)s" }, }, "handlers": { "console": { "level": "DEBUG", "class":"logging.StreamHandler", "formatter": "simple" }, "mail_admins": { "level": "ERROR", "class": "django.utils.log.AdminEmailHandler" } }, "loggers": { "django.request": { "handlers": ["mail_admins"], "level": "ERROR", "propagate": True, }, "mylogger": { "handlers" : ["console",], "level": "DEBUG" } } } 然後在要用的地方,比如views.py中: import logging logger = logging.getLogger("mylogger") #記錄log logger.debug("something")
djangot 除錯的兩種方法:
1.常用的print方法,由於使用python manage.py runserver實際是透過啟動子程序的方式,子程序的標準輸出不知道是到哪兒了,所以只有讓除錯伺服器不以子程序的方式進行,可以用如下命令:python manage.py runserver --noreload,這樣print出來的資訊就可以在終端看到了,但是這樣作,每次python程式碼有修改,就要重啟伺服器。
2.輸出log到終端: LOGGING = { "version": 1, "disable_existing_loggers": False, "formatters": { "simple": { "format": "%(levelname)s %(message)s" }, }, "handlers": { "console": { "level": "DEBUG", "class":"logging.StreamHandler", "formatter": "simple" }, "mail_admins": { "level": "ERROR", "class": "django.utils.log.AdminEmailHandler" } }, "loggers": { "django.request": { "handlers": ["mail_admins"], "level": "ERROR", "propagate": True, }, "mylogger": { "handlers" : ["console",], "level": "DEBUG" } } } 然後在要用的地方,比如views.py中: import logging logger = logging.getLogger("mylogger") #記錄log logger.debug("something")