Django框架(十八)--读写分离,日志

一、读写分离

django使用读写分离

1.settings.py配置

在这里插入图片描述

写:master(dafault)

读:slave

涉及到django服务如何选择使用数据库的问题

2.模型同步

注意

如果使用mysql数据库,首先应该先建库

使用sqlite3,不需要建库,直接数据迁移,同步表结构

python manage.py migrate --database slave

3.配置读写分离

使读写分别使用不同的数据库

使用自动模式

1.重写方法

重写的是数据库路由提供的方法,一共有4个,重写2个就可以了

  • db_for_read()
  • db_for_write()

在项目的主目录中,创建一个脚本文件mydbrouter.py,自定义数据库路由

在这里插入图片描述

2.配置指定的数据库路由

在这里插入图片描述

4.使用

按照配置,将数据写在了master库中,没有写在slave库中

数据库之间进行数据同步,需要在数据库中进行配置

一主多从

在这里插入图片描述

问题:如何选择slave

数据库集群,关于选择slave,需要加一个权重,达到负载均衡

这里随机选择slave库

1.settings.py配置

在这里插入图片描述

2.数据迁移

3.mydbrouter.py

在这里插入图片描述

二、日志

python3中为我们提供了logging包,主要用于记录程序运行期间,产生让你给的全部日志,统一分析。

在项目根目录创建了一个loggingtest.py文件

日志等级

在这里插入图片描述

日志配置

import logging

# 输出日志
# hander 句柄
logging_hander = logging.FileHandler('test.log',encoding='utf-8')
stream_hander = logging.StreamHandler()
log_format = '%(asctime)s【%(levelname)s】%(message)s'    # 日志格式
time_format = '%Y-%m-%d %H:%M:%S'    # 事件格式
# 日志配置
# 设置日志等级的设置
logging.basicConfig(level=logging.DEBUG,format=log_format,datefmt=time_format,handlers=[logging_hander,stream_hander])

# 调试,最详细的日志等级,通常用于问题项目的调试过程
logging.debug('这是debug等级')
# 详细程度仅次于debug,记录通常是关键节点的信息
logging.info('这是info等级')
# 警告,当某些不被期望的错误发生,但是不影响程序运行
logging.warning('这是warning等级')
# 出现严重的问题,导致部分功能不能运行
logging.error('这是error等级')
# 严重错误,导致程序中断
logging.critical('这是critical等级')

Django日志

django已经封装了log模块,提供了日志系统

工作中有两种选择

  • 使用刚才写的日志系统,进行封装
  • 使用django为我们封装好的
settings.py配置
# logging日志配置
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,    # 是否禁用之前的日志
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(BASE_DIR,'debug.log'),
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}
日志的使用

视图中导包
在这里插入图片描述
在这里插入图片描述

收集

在login视图中

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值