settings、wsgi開発環境の分離


今まではsettingspyとmy settings.pyを利用した開発なら、今の人はそうではないことに気づいています.だから分離の方法を学びました.
  • settings.py wsgi.ぶんり
    導入前に、さまざまなプロジェクト設定の設定が含まれています.pyを実行環境に従って分離します.

  • settingsディレクトリ
  • __init__.py
  • base.py(汎用)
  • local.py(開発用)
  • deploy.py(導入用)
  • wsgiディレクトリ
  • __init__.py
  • local.py
  • deploy.py
  • base.pyはその名の通り基本的なファイルで、共通部分だけを残してすべて削除します.
  • import os
    
    # Build paths inside the project like this: BASE_DIR / 'subdir'.
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    ROOT_DIR = os.path.dirname(BASE_DIR)
    
    LANGUAGE_CODE = 'ko-kr'
    
    TIME_ZONE = 'Asia/Seoul'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True
    
    # installed app, middleware 등..
  • local.py
    ローカルは開発環境で、開発に必要なものを記録します.もちろん基礎です.pyに記載されているものもそのまま持ってきます.
  • debug=trueは、エラーの原因を詳細に説明しています.だから現地で使います.
  • from .base import *
    DEBUG = True
    WSGI_APPLICATION = 'api.wsgi.local.application'
    
    
    DATABASES = {
        'default' : {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'DB이름',
            'USER': '이름',
            'PASSWORD': '',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
    }
    
    # secret_key 도 기재
  • deploy.py
    ローカルは開発環境で、開発に必要なものを記録します.もちろん基礎です.pyに記載されているものもそのまま持ってきます.
  • debug=falseはエラーの原因を提供しません.そのため、導入環境で使用します.
    https://blog.joonas.io/58参照
  • from .base import *
    DEBUG = False
    WSGI_APPLICATION = 'api.wsgi.deploy.application'
    
    
    DATABASES = {
        'default' : {
            'ENGINE': '',
            'NAME': 'DB이름',
            'USER': '이름',
            'PASSWORD': '',
            'HOST': '아마존',
            'PORT': '',
        }
    }
    
    # secret_key 도 기재
    構成
  • wsgiディレクトリ
  • # local.py
    import os
    
    from django.core.wsgi import get_wsgi_application
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'api.settings.local')
    
    application = get_wsgi_application()
    
    # deploy.py
    import os
    
    from django.core.wsgi import get_wsgi_application
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'api.settings.deploy')
    
    application = get_wsgi_application()
    コールは次のとおりです.0:8000を追加しましたが、これを外しても大丈夫です.
    python manage.py runserver 0:8000 --settings=api.settings.deploy
    
    python manage.py runserver 0:8000 --settings=api.settings.local

    デフォルトでは、設定は完了します.

    次のエラーが発生した場合:


    django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
    pip installやってみろwhitenoise
    または、install appにテーブルが配置されていない可能性があります!