Переглянути джерело

国内使用python-dotenv配置环境变量

locky 1 тиждень тому
батько
коміт
5527331c28
2 змінених файлів з 27 додано та 25 видалено
  1. 24 23
      AnsjerPush/cn_config/cn_formal_settings.py
  2. 3 2
      requirements.txt

+ 24 - 23
AnsjerPush/cn_config/cn_formal_settings.py

@@ -1,24 +1,25 @@
 import os
 from AnsjerPush.config import BASE_DIR
-import environ
+from dotenv import load_dotenv
+load_dotenv(os.path.join(BASE_DIR, '.env'))
 
-env = environ.Env(
-    DEBUG=(bool, False)
-)
-# 读取 .env 文件
-environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
+def get_list(name, default=None, sep=","):
+    value = os.getenv(name)
+    if value is None:
+        return default or []
+    return [x.strip() for x in value.split(sep) if x.strip()]
 
-ACCESS_KEY_ID = env('ACCESS_KEY_ID', default='')
-SECRET_ACCESS_KEY = env('SECRET_ACCESS_KEY', default='')
-AWS_ACCESS_KEY_ID = env.list('AWS_ACCESS_KEY_ID', default=[])
-AWS_SECRET_ACCESS_KEY = env.list('AWS_SECRET_ACCESS_KEY', default=[])
+ACCESS_KEY_ID = os.getenv('ACCESS_KEY_ID', default='')
+SECRET_ACCESS_KEY = os.getenv('SECRET_ACCESS_KEY', default='')
+AWS_ACCESS_KEY_ID = get_list('AWS_ACCESS_KEY_ID', default=[])
+AWS_SECRET_ACCESS_KEY = get_list('AWS_SECRET_ACCESS_KEY', default=[])
 
-OSS_STS_ACCESS_KEY = env('OSS_STS_ACCESS_KEY', default='')
-OSS_STS_ACCESS_SECRET = env('OSS_STS_ACCESS_SECRET', default='')
-OSS_ROLE_ARN = env('OSS_ROLE_ARN', default='')
+OSS_STS_ACCESS_KEY = os.getenv('OSS_STS_ACCESS_KEY', default='')
+OSS_STS_ACCESS_SECRET = os.getenv('OSS_STS_ACCESS_SECRET', default='')
+OSS_ROLE_ARN = os.getenv('OSS_ROLE_ARN', default='')
 
-HUAWEICLOUD_AK = env('HUAWEICLOUD_AK', default='')
-HUAWEICLOUD_SK = env('HUAWEICLOUD_SK', default='')
+HUAWEICLOUD_AK = os.getenv('HUAWEICLOUD_AK', default='')
+HUAWEICLOUD_SK = os.getenv('HUAWEICLOUD_SK', default='')
 
 SECRET_KEY = '$2hf5g$a%_^kk0-l25l$!o5)yc=dvtnfpc8(+$rh4fq4twa_xx'
 DEBUG = False
@@ -70,16 +71,16 @@ TEMPLATES = [
 WSGI_APPLICATION = 'AnsjerPush.wsgi.application'
 
 # 业务数据库
-DATABASE_DATA = env('DATABASE_DATA')
-SERVER_HOST = env('SERVER_HOST')
-DATABASES_USER = env('DATABASES_USER')
-DATABASES_PASS = env('DATABASES_PASS')
+DATABASE_DATA = os.getenv('DATABASE_DATA')
+SERVER_HOST = os.getenv('SERVER_HOST')
+DATABASES_USER = os.getenv('DATABASES_USER')
+DATABASES_PASS = os.getenv('DATABASES_PASS')
 
 # 推送数据库
-DATABASE_DATA2 = env('DATABASE_DATA2')
-SERVER_HOST2 = env('SERVER_HOST2')
-DATABASES_USER2 = env('DATABASES_USER2')
-DATABASES_PASS2 = env('DATABASES_PASS2')
+DATABASE_DATA2 = os.getenv('DATABASE_DATA2')
+SERVER_HOST2 = os.getenv('SERVER_HOST2')
+DATABASES_USER2 = os.getenv('DATABASES_USER2')
+DATABASES_PASS2 = os.getenv('DATABASES_PASS2')
 
 DATABASES = {
     'default': {

+ 3 - 2
requirements.txt

@@ -41,7 +41,7 @@ gunicorn==22.0.0
 h2==4.0.0
 hpack==4.0.0
 httplib2==0.22.0
-hyper==0.7.0
+hyper
 hyperframe==6.0.1
 httpx==0.28.1
 idna==3.7
@@ -109,4 +109,5 @@ zope.interface==6.4
 esdk-obs-python==3.24.6
 concurrent-log-handler==0.9.25
 oci==2.125.2
-django-environ==0.11.2
+django-environ==0.11.2
+python-dotenv==1.0.1