Django 2中的本地设置

时间:2018-11-07 13:55:58

标签: django django-settings

我正在将Django 2与Python 3.7一起使用

我想从文件local_settings.py导入一些设置,以便可以将该文件包含在.gitignore中,这样就不会在github上共享我的秘密密钥。

我的文件夹树设置如下: folder tree

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?

2 个答案:

答案 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