django 设置 控制台 输出的 url 地址 编码
时间: 2023-05-28 12:04:15 浏览: 113
可以在settings.py文件中设置控制台输出的url地址编码,如下所示:
```python
import urllib.parse
# 将url编码设置为utf-8
CONSOLE_URL_ENCODING = 'utf-8'
# 重载控制台信息格式化函数
def format_console_message(record):
message = record.getMessage()
if isinstance(message, str) and 'http' in message:
message = message.replace('http', 'http%3A%2F%2F')
message = urllib.parse.unquote(message, encoding=CONSOLE_URL_ENCODING)
return message
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'console',
},
},
'formatters': {
'console': {
'format': '[%(levelname)s] %(asctime)s %(name)s %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S',
'()': 'django.utils.log.ServerFormatter',
'format_console_message': format_console_message,
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'INFO',
},
},
}
```
在这个例子中,我们定义了一个`CONSOLE_URL_ENCODING`变量,用于指定url编码的字符集。我们还定义了一个`format_console_message`函数,用于格式化控制台输出的信息。在这个函数中,我们使用`urllib.parse.unquote`函数,将编码后的url地址进行解码,并指定编码字符集为`CONSOLE_URL_ENCODING`。最后,我们将`format_console_message`函数添加到`formatters`字典中,用于格式化控制台输出的信息。
阅读全文