django一般怎样调试
展开全部
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')
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')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询