首页 > 解决方案 > 使用 Pycharm 和 Django 的本地设置

问题描述

我正在使用Pycharm以开发我的Django项目,并且我对设置有疑问。

我有一个base.py设置文件,其中包含所有设置(尤其是数据库和电子邮件设置):

...

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'app_db',
        'USER': 'app_user',
        'PASSWORD': get_secret("DB_PWD", SECRETS),
        'HOST': 'localhost',
        'TEST': {
            'NAME': 'test_app_db',
            'USER': 'app_user',
        }
    }
}

DEFAULT_FROM_EMAIL = 'noreply@test.fr'
EMAIL_SENDER = DEFAULT_FROM_EMAIL
EMAIL_HOST = 'smtp.test.fr'
EMAIL_PORT = 25

EMAIL_USER = ''
EMAIL_PASSWORD = ''

...

此配置适用于我的远程服务器,但是当我在 localhost 中开发时,我想在local.py文件中考虑相同的参数:

from .base import *
...

DATABASES['default']['USER'] = 'app_user2'

EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
...

我的wsgi.py文件如下所示:

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "main.settings.base")

application = get_wsgi_application()

使用 Pycharm,我配置了:

在此处输入图像描述

在此处输入图像描述

问题:

我在 local.py 中的数据库参数已被考虑在内,但没有考虑到我的电子邮件HOSTPORT参数。

==> 如果我定义DJANGO_SETTINGS_MODULE = main.settings.local,它仍然存在smtp.test.fr而不是localhost。电子邮件端口也是如此。

我如何覆盖 local.py 中的这些参数,以便不考虑 base.py 参数,而是考虑 local.py 文件中的参数?

标签: djangopycharmdjango-settings

解决方案


推荐阅读