把settings.py拆分为目录是为了方便区分不同的环境,从而方便调试
我最终把settings.py拆分为了以下几个文件
base中包含的是最基本的配置
local中包含的是开发环境使用的变量,如DEBUG=True
prod中包含的是生产环境使用的变量,如DEBUG=False
这样在把代码上传到服务器之后只需要根据环境变量就能知道使用的是哪个变量了,而不用每次都去修改代码
拆分步骤如下:
1、在settings.py目录下创建settings文件夹,并创建__init__.py文件
2、把settings.py剪切到settings文件夹中,并重命名为base.py
3、修改base.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
修改为
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(os.path.join(__file__, os.pardir))))
4、把本地环境和生产环境需要区分的变量分别放到local.py中和prod.py中
5、修改manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'YOUR-PROJECT-NAME.settings')
修改为
profile = os.environ.get('PROJECT_PROFILE', 'develop')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'YOUR-PROJECT-NAME.settings.%s' % profile)
6、修改manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'YOUR-PROJECT-NAME.settings')
修改为
profile = os.environ.get('PROJECT_PROFILE', 'develop')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'YOUR-PROJECT-NAME.settings.%s' % profile)
Pycharm配置
1、编辑配置
指定为settings.local
2、解决Tools中Run manage.py Task消失的问题
打开菜单中File→Settings,指定local.py文件