我想按照“Django的两个Scoops”所解释的那样实现设置。我推荐了他们的书以及github sample code。
我收到以下错误:
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
当我将以下代码添加到设置文件夹中的__init__.py
时,问题就解决了:
from .local import *
请详细解释发生的情况,因为互联网上的所有示例中__init__.py
都没有代码。
我在Python 3.4上使用 Django 1.8.2
答案 0 :(得分:1)
当您在文件夹中包含__init__.py
时,该文件夹会被标记为名为settings
的程序包,您可以从中导入local
模块
这在Python中是一个相当标准的东西,即使不是每个Django程序员都使用settings
作为包
来自Python文档:
需要
__init__.py
个文件才能让Python对待 目录包含包;这是为了防止 无意中具有通用名称的目录,例如string 隐藏稍后在模块搜索路径上发生的有效模块。在 最简单的情况,__init__.py
可以只是一个空文件,但它可以 还执行包的初始化代码或设置__all__
变量,稍后描述。
来源:https://docs.python.org/3/tutorial/modules.html#packages
我的问题是我需要在 init .py中使用.local import *编写 包装工作?
检查您应加载manage.py
的{{1}}文件,例如
settings.local
同时检查本地模块中#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings.local")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
的实际值,看它是否为空(如果你使用了一些变量插值)