2017-04-26 39 views
1

我试图将我的敏感数据设置到我的.env文件中。.env'PAYPAL_API_USERNAME'未定义

我做了一些研究并成功创建了这个文件。

https://ultimatedjango.com/learn-django/lessons/handling-sensitive-keys/

https://django-environ.readthedocs.io/en/latest/

我可以通过我的settings.py设置我的密钥和数据库设置和访问它,一切工作正常。 例如像 -

 env.db()SECRET_KEY = os.environ["SECRET_KEY"] 

    DATABASES = { 
    'default': env.db(), # Raises ImproperlyConfigured exception if     DATABASE_URL not in os.environ 
     } 

和数据库的详细信息打印在我的Python壳。而django-oscar运行没有问题。

现在,我试图在相同的.env文件中设置我的贝宝详细信息,但似乎有问题。在我.ENV文件我已经为设置 -

#PAYPAL SETTINGS 



    export PAYPAL_MODE=sandbox # sandbox or live 

    export PAYPAL_CLIENT_ID=my_paypal_client_id 

export PAYPAL_CLIENT_SECRET=my_payal_secret 



#PAYPAL SETTINGS 

export PAYPAL_API_USERNAME=mypaypalusername.com 

export PAYPAL_API_PASSWORD=my_password 

export PAYPAL_API_SIGNATURE=my_signature 

在我的settings.py我试图做一个参考吧,所以我的应用程序可以访问它 -

#PAYPAL SETTINGS 
    PAYPAL_API_USERNAME = os.environ["PAYPAL_API_USERNAME"] 
    PAYPAL_API_PASSWORD = os.environ[PAYPAL_API_PASSWORD] 
    PAYPAL_API_SIGNATURE = os.environ[PAYPAL_API_SIGNATURE] 

    import paypalrestsdk 

    PAYPAL_MODE=os.environ['PAYPAL_MODE'] 
    PAYPAL_CLIENT_ID=os.environ['PAYPAL_CLIENT_ID'] 
    PAYPAL_CLIENT_SECRET=os.environ['PAYPAL_CLIENT_SECRET'] 

我得到的错误时运行服务器 -

PAYPAL_API_USERNAME=os.environ[PAYPAL_API_USERNAME] 



    NameError: name 'PAYPAL_API_USERNAME' is not defined 

我已经做了一些研究,但没有得到专门针对这个问题的答案。请,有人可以指点我正确的方向吗?

谢谢。

+1

的错误意味着您试图访问未被定义的变量。在这种情况下,您正试图从变量PAYPAL_API_USERNAME中读取值。 可能你对os.environ的调用是错误的。 os.environ它基本上是一个字典,其中的键是对应于您在OS中设置的变量名称的字符串。 变量= os.getenviron [ 'NAME_OF_VAR_AS_STRING'] 所以,正确的说法是: #注意引号 PAYPAL_API_USERNAME = os.environ [ “PAYPAL_API_USERNAME”] – BangTheBank

回答

0

使用

os.environ.get('PAYPAL_API_USERNAME') 
+0

谢谢。我必须添加 – evepokua

+0

我不得不添加此语句 - 'env = environ.Env(DEBUG =(bool,False),#设置默认值并投射'。并更改为PAYPAL_API_USERNAME = os.environ.get(“PAYPAL_API_USERNAME”) PAYPAL_API_PASSWORD = os.environ.get(“PAYPAL_API_PASSWORD”) PAYPAL_API_SIGNATURE = os.environ.get(“PAYPAL_API_SIGNATURE”)。谢谢。现在我有另一个错误,但这是另一个故事。 @Exprator – evepokua