django-生產和測試環境分離
- 在settings.py的同級目錄下新建settings的文件夾
- 在settings文件夾下新建
- __init__.py
- base.py
- develop.py
- product.py
- 將settings.py里面的通用部分全部復制到base里面,變動的內容如: 數據庫的配置和DEBUG等除外
- 在develop里面將base里的內容全部導入
-
from .base import *
-
- 將數據庫等變動的信息加入即可
- 修改BASE_DIR
-
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
- BASE_DIR為項目的根目錄,此時的根目錄相對於該配置文件的上2級目錄,就在原來的BASE_DIR的基礎上面再加一層os.path.dirname即可
-
- 修改wsgi和manage.py
-
1 import os 2 3 from django.core.wsgi import get_wsgi_application 4 5 profile = os.environ.get('PROJECT_PROFILE', 'develop') 6 7 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ActivityApi.settings.%s' % profile) 8 9 application = get_wsgi_application()
wsgi.py
-
1 #!/usr/bin/env python 2 """Django's command-line utility for administrative tasks.""" 3 import os 4 import sys 5 6 7 def main(): 8 profile = os.environ.get('PROJECT_PROFILE', 'develop') 9 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ActivityApi.settings.%s' % profile) 10 try: 11 from django.core.management import execute_from_command_line 12 except ImportError as exc: 13 raise ImportError( 14 "Couldn't import Django. Are you sure it's installed and " 15 "available on your PYTHONPATH environment variable? Did you " 16 "forget to activate a virtual environment?" 17 ) from exc 18 execute_from_command_line(sys.argv) 19 20 21 if __name__ == '__main__': 22 main()
manage.py
-
- 啟動
- python manage.py runserver
- pycharm啟動