我正在将Django 2与Python 3.7一起使用
我想从文件local_settings.py导入一些设置,以便可以将该文件包含在.gitignore中,这样就不会在github上共享我的秘密密钥。
settings.py的结尾是这个:
try:
from local_settings import *
except ImportError:
pass
ORDERS = '@catsinuniform.myshopify.com/admin/orders.json'
PRODUCTS = '@catsinuniform.myshopify.com/admin/products.json'
SHOPIFY_SECRET_KEY = ''
SHOPIFY_PWORD = ''
ORDERS_URL = f"https://{SHOPIFY_SECRET_KEY}:{SHOPIFY_PWORD}{ORDERS}"
PRODUCTS_URL = f"https://{SHOPIFY_SECRET_KEY}:{SHOPIFY_PWORD}{PRODUCTS}"
我也想将我的SECRET_KEY放在local_settings.py
这不起作用,我找不到原因吗?是我的Python版本还是Django?
答案 0 :(得分:0)
因为您的local_settings.py
首先被导入,然后被您的设置覆盖。如果要使用此模式,请在文件末尾进行导入。
一种更好的方法是在服务器上设置的环境变量中使用密钥,然后使用类似以下内容将其导入到设置文件中:
SECRET_KEY = os.environ.get('SECRET_KEY', 'some_sort_of_sane_default_for_your_dev')
答案 1 :(得分:0)
另一种方法是从__init__.py
文件中导入
from .settings import *
try:
from .local_settings import *
except ImportError as exc:
exc.args = tuple(
['%s (local_settings.py missing)' % exc.args[0]])
raise exc