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

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

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

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

文章目录
  • 前言
  • 一、Django-environ是什么?
  • 二、使用步骤
    • 1.安装库
    • 2.引入
    • 3. *** 作
  • 总结


前言 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文件来管理和读取敏感的环境变量,使我们方便管理配置参数

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5625133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存