Django-environd的使用(管理配置文件敏感参数和环境变量)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Django不建议把配置文件里的敏感参数直接写在settings.py里,比如SECRET_KEY和数据库的PASSWORD,而是建议把这些参数放在环境变量里,因此我找到了Django-environ,由于文档描述得不是很清晰,因此与大家分享一下一些我知道的用法

提示:以下是本篇文章正文内容,下面案例可供参考

一、Django-environ是什么?

它为您提供了一种使用从环境文件中获取并由操作系统提供的环境变量配置Django应用程序的简单方法

二、使用步骤

1.安装库

pii install Django-environ

2.引入

import environ

3.操作

env文件内容

DEBUG=False
SECRET_KEY="django-insecure-aeo-_!$=#@!er1^ltjaiijmdxcxcxcghhghhhhf"
ALLOWED_HOSTS=192.168.0.188  #当有多个的时候 格式为 192.168.0.188,192.168.0.188,192.168.0.188 逗号隔开
#数据库引擎://用户名:密码@地址:端口/数据库名
DATABASE_URL='mysql://user:password@127.0.0.1:3306/dbname'
SQLITE_URL='sqlite:///my-local-sqlite.db'
CACHE_URL=memcache://127.0.0.1:11211,127.0.0.1:11212,127.0.0.1:11213
#地址:端口/库号?参数=值&参数=值
REDIS_URL=rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient&password=ungithubbed
#数据库引擎所有选项
DB_SCHEMES = {
        'postgres': DJANGO_POSTGRES,
        'postgresql': DJANGO_POSTGRES,
        'psql': DJANGO_POSTGRES,
        'pgsql': DJANGO_POSTGRES,
        'postgis': 'django.contrib.gis.db.backends.postgis',
        'mysql': 'django.db.backends.mysql',
        'mysql2': 'django.db.backends.mysql',
        'mysql-connector': 'mysql.connector.django',
        'mysqlgis': 'django.contrib.gis.db.backends.mysql',
        'mssql': 'sql_server.pyodbc',
        'oracle': 'django.db.backends.oracle',
        'pyodbc': 'sql_server.pyodbc',
        'redshift': 'django_redshift_backend',
        'spatialite': 'django.contrib.gis.db.backends.spatialite',
        'sqlite': 'django.db.backends.sqlite3',
        'ldap': 'ldapdb.backends.ldap',
    }
#缓存引擎所有选项
 CACHE_SCHEMES = {
        'dbcache': 'django.core.cache.backends.db.DatabaseCache',
        'dummycache': 'django.core.cache.backends.dummy.DummyCache',
        'filecache': 'django.core.cache.backends.filebased.FileBasedCache',
        'locmemcache': 'django.core.cache.backends.locmem.LocMemCache',
        'memcache': 'django.core.cache.backends.memcached.MemcachedCache',
        'pymemcache': PYMEMCACHE_DRIVER,
        'pylibmc': 'django.core.cache.backends.memcached.PyLibMCCache',
        'rediscache': REDIS_DRIVER,
        'redis': REDIS_DRIVER,
        'rediss': REDIS_DRIVER,
    }

settings.py

env = environ.Env() #实例化
env.read_env('envs/.env.dev') #读取文件,参数为文件路径
#获取布尔值
DEBUG = env.bool('DEBUG', False)# 先获取DEBUG变量值,获取不到就取使用默认值False
#获取字符串
SECRET_KEY = env('SECRET_KEY')
#获取列表值
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
# 设置默认数据库。
DATABASES = {
 'default': env.db(), #解析DATABASE_URL
 #异常就使用自带数据库
 'extra': env.db('SQLITE_URL', default='sqlite:tmp/my-tmp-sqlite.db')
}
CACHES = {
    # read os.environ['CACHE_URL'] and raises ImproperlyConfigured exception if not found
    'default': env.cache(),
    # read os.environ['REDIS_URL']
    'redis': env.cache('REDIS_URL')
}

我们可以创建两个文件用做开发环境和生产部署环境的配置

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Django-environ的使用,Django-environ的最大优点是它支持使用.env文件来管理和读取敏感的环境变量,使我们方便管理配置参数
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值