美文网首页
多环境下,配置django settings

多环境下,配置django settings

作者: 青穗黄 | 来源:发表于2018-07-24 10:47 被阅读431次
    1. 在settings.py旁边创建settings文件夹
    2. 重命名settings.py为base.py,并移动到新建的settings文件夹中
    3. 在settings/ 文件夹创建其它的配置文件
      以下为Django 2 by example原文
      In real-world projects you will have to deal with multiple
      environments. You will have at least a local and a production
      environment, but you could have other environments as well,
      such as testing or pre-production environments. Some project
      settings will be common to all environments, but others will
      have to be overridden per environment. Let's set up project
      settings for multiple environments while keeping everything
      neatly organized.
      Create a settings/ directory next to the settings.py file of the educa
      project. Rename the settings.py file to base.py and move it into
      the new settings/ directory. Create the following additional files
      inside the setting/ folder so that the new directory looks as
      follows:


      image.png

      These files are as follows:
      base.py: The base settings file that contains common
      settings (previously settings.py)
      local.py: Custom settings for your local environment
      pro.py: Custom settings for the production environment
      Edit the settings/base.py file and replace the following line:

    BASE_DIR =
    os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    

    With the following one:

    BASE_DIR =
    os.path.dirname(os.path.dirname(os.path.abspath(os.path.join(__f
    ile__, os.pardir))))
    

    We have moved our settings files to a directory one level
    lower, so we need BASE_DIR to point to the parent directory to be
    correct. We achieve this by pointing to the parent directory
    with os.pardir.
    Edit the settings/local.py file and add the following lines of code:

    from .base import *
    DEBUG = True
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
    }
    

    This is the settings file for our local environment. We import
    all settings defined in the base.py file and we only define specific
    settings for this environment. We have copied the DEBUG and
    DATABASES settings from the base.py file, since these will be set per
    environment. You can remove the DATABASES and DEBUG settings
    from the base.py settings file.
    Edit the settings/pro.py file and make it look as follows:

    from .base import *
    DEBUG = False
    ADMINS = (
    ('Antonio M', 'email@mydomain.com'),
    )
    ALLOWED_HOSTS = ['*']
    DATABASES = {
    'default': {
    }
    }
    

    These are the settings for the production environment. Let's
    take a closer look at each of them:
    DEBUG: Setting DEBUG to False should be mandatory for any
    production environment. Failing to do so will result in
    traceback information and sensitive configuration data
    exposed to everyone.
    ADMINS: When DEBUG is False and a view raises an exception,
    all information will be sent by email to the people
    listed in the ADMINS setting. Make sure to replace the
    name/email tuple with your own information.
    ALLOWED_HOSTS: Django will only allow the hosts included
    in this list to serve the application. This is a security
    measure. We include the asterisk symbol * to refer to
    all hostnames. We will limit the hostnames that can be
    used for serving the application later.
    DATABASES: We just keep this setting empty. We are going
    to cover database setup for production hereafter.

    When handling multiple environments, create a base settings file and a
    settings file for each environment. Environment settings files should inherit
    the common settings and override environment-specific settings.
    We have placed the project settings in a different location than
    the default settings.py file. You will not be able to execute any
    commands with the manage.py tool unless you specify the
    settings module to use. You will need to add a --settings flag
    when you run management commands from the shell or set a
    DJANGO_SETTINGS_MODULE environment variable.
    Open the shell and run the following command:

    export DJANGO_SETTINGS_MODULE=educa.settings.pro
    

    This will set the DJANGO_SETTINGS_MODULE environment variable for
    the current shell session. If you want to avoid executing this
    command for each new shell, add this command to your
    shell's configuration in the .bashrc or .bash_profile files. If you
    don't set this variable you will have to run management
    commands, including the --settings flag, as follows:

    python manage.py migrate --settings=educa.settings.pro
    

    You have successfully organized settings for handling multiple
    environments.

    相关文章

      网友评论

          本文标题:多环境下,配置django settings

          本文链接:https://www.haomeiwen.com/subject/deremftx.html