当前位置: 首页 > news >正文

settings配置数据库和日志

数据库的配置:

一.mysql配置

  • pip下载pymysql,用于mysql和django的连接。
  • 在init.py上配置pymsqy。
import pymysql

pymysql.install_as_MySQLdb()
  • 在setting文件配置mysql,为了信息不被暴露,我们将信息写在另一个文件中,在OPTIONS上写入这个文件路径即可。
[client]
database = ****
user = ****
password = ****
host = ****
port = ****
default-character-set = utf8

 

DATABASES = {
    #  'default': {
    #     'ENGINE': 'django.db.backends.mysql',   # 数据库引擎
    #     'NAME': '',                       # 数据库名称
    #     'USER': '',                      # 数据库登录用户名
    #     'PASSWORD': '',                # 密码
    #     'HOST': '',                # 数据库主机IP,如保持默认,则为127.0.0.1
    #     'PORT': 3306,                           # 数据库端口号,如保持默认,则为3306
    # }
    'default':{
        'ENGINE':'django.db.backends.mysql',
        'OPTIONS':{
            'read_default_file': 'utils/dbs/my.cnf',
        },
    }
}

二、redis配置

  • Ubuntu下安装redis,安装好后可输入redis-cli进入,来检测安装是否成功。
sudo apt-get install redis-server
  • pip安装django_redis,用于django上操作redis。
pip install django_redis
  • settings.py上的配置,这里我分配了三个db,
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",  #0表示第一个数据库
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "verify_codes": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "session": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/2",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
}
  • 测试redis是否配置成功:这里可以打开后台命令(python manage.py shell),输入以下代码。
from django.core.cache import cache #引入缓存模块
cache.set('v', '555', 60*60)      #写入key为v,值为555的缓存,有效期30分钟
cache.has_key('v') #判断key为v是否存在
cache.get('v')     #获取key为v的缓存

三、日志配置

# 配置日志器,记录网站的日志信息
LOGGING = {
    # 版本
    'version': 1,
    # 是否禁用已存在的日志器
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },
    },
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {  #保存日志的方式
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
    'file': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, "logs/mylogs.log"),  # 日志文件的位置
            'maxBytes': 300 * 1024 * 1024,   #一个文件的大小
            'backupCount': 10,   #最大的文件数,超过后会轮回覆盖
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'django': {  # 定义了一个名为django的日志器
            'handlers': ['console', 'file'],
            'propagate': True,
            'level': 'INFO',  # 日志器接收的最低日志级别
        },
    }
}

 

转载于:https://www.cnblogs.com/longwhite/p/10397659.html

相关文章:

  • K-means 怎么选 K ?
  • 蚂蚁金服庆涛:OceanBase支撑2135亿成交额背后的技术原理
  • Electron构建跨平台应用Mac/Windows/Linux
  • 每个 JavaScript 开发者都该了解的 ES2018 新特性
  • 混合式开发框架资料汇总
  • Python爬虫初学者需要了解的知识与技能
  • js获取客户端本地ip
  • 「小程序JAVA实战」小程序视频播放的时候生命周期的控制(56)
  • oracle中无法用退格和上下翻命令解决
  • 我发起并创立了一个 Javascript 前端库 开源项目 jWebForm
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • C# 8新提案让泛型Attribute成为现实
  • v-if和v-for连用出现的问题
  • 导入javax.servlet。伺服登记无法解决:The import javax.servlet.MultipartConfigElement cannot be resolved...
  • 与柯尼塞格达成合作后 恒大或将继续瞄准中高端新能源车
  • 3.7、@ResponseBody 和 @RestController
  • Android单元测试 - 几个重要问题
  • Android组件 - 收藏集 - 掘金
  • Bootstrap JS插件Alert源码分析
  • HTTP中的ETag在移动客户端的应用
  • JavaScript对象详解
  • JavaScript设计模式之工厂模式
  • Less 日常用法
  • Linux下的乱码问题
  • php中curl和soap方式请求服务超时问题
  • sessionStorage和localStorage
  • Vim Clutch | 面向脚踏板编程……
  • vue.js框架原理浅析
  • 爱情 北京女病人
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 对象管理器(defineProperty)学习笔记
  • 聊聊hikari连接池的leakDetectionThreshold
  • 实现菜单下拉伸展折叠效果demo
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用权重正则化较少模型过拟合
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 思维导图—你不知道的JavaScript中卷
  • 移动端 h5开发相关内容总结(三)
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​学习一下,什么是预包装食品?​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • (python)数据结构---字典
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (办公)springboot配置aop处理请求.
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (五)Python 垃圾回收机制
  • (一)u-boot-nand.bin的下载
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)母版页和相对路径
  • .Family_物联网