1

我是 Python 和 Django 的新手,在过去的几周里成功地建立了我的第一个部署 - 一个非常基本的站点,带有用户身份验证和几个页面,我希望在接下来的几周内填充内容。

通过搜索 Google / StackOverflow / Django 文档等,我已经设法找到了迄今为​​止遇到的大约 40 多个问题的答案,但现在我似乎找不到一个好的答案(也许是因为我没有)不知道如何最好地搜索它):当我在本地机器上开发时,我需要我的 settings.py 文件指向远程数据库('HOST': 'www.mysite.com',)但是当我部署到共享托管服务提供商时,他们需要使用localhost'HOST': '',在设置中.py)。

由于我在 GitHub 上托管我的代码并希望将其镜像到服务器,有没有办法解决这个问题,所以我不必每次将更改上传到服务器后手动编辑 settings.py?

4

2 回答 2

1

您可以拥有两份settings.py文件副本,一份用于生产,一份用于开发。无论您需要成为默认值,将其命名为settings.py

只需设置您要使用的文件DJANGO_SETTINGS_MODULEpython 路径即可。

因此,如果您的设置文件是myproject/settings.py, myproject/settings_dev.py; 然后你可以这样做:

$ DJANGO_SETTINGS_MODULE=settings_dev python manage.py shell

myproject目录。

于 2012-08-01T18:26:27.560 回答
0

您可以创建一个 local_settings.py 文件,您可以将其放入 .gitignore 并将其包含在原始 settings.py 中。将每个环境敏感变量放入此文件(DATABASES、DEBUG、CACHES、MEDIA_URL 等)

在 settings.py 中:

try:
    from local_settings import *
except ImportError:
    pass

在 .gitignore 中:

*/local_settings.py

我建议你在 gitrepo 中的设置文件旁边放一个 local_settings.py.example。这样,每当您部署到新环境时,您只需复制此示例并更改必要的行。

于 2012-08-02T08:09:37.740 回答