我是Python和Django的新手,并且在过去几周内成功设置了我的第一个部署 - 一个非常基本的网站,其中包含用户身份验证和一些页面,我希望在接下来的几个页面中填写内容。周。
我已经设法找到了迄今为止通过搜索Google / StackOverflow / Django文档等我遇到的40多个问题的答案,但现在我有一个我似乎无法找到一个好的答案(也许是因为我不知道如何最好地搜索它):当我在本地机器上开发时,我需要我的settings.py文件指向远程数据库('HOST': 'www.mysite.com',
)但是当我部署到共享主机服务提供商时他们需要在settings.py中使用localhost
('HOST': '',
)。
由于我在GitHub上托管我的代码并希望将其镜像到服务器,有没有办法解决这个问题,所以每次上传更改到服务器后我都不必手动编辑settings.py?
答案 0 :(得分:1)
您可以拥有settings.py
个文件的两个副本,一个用于生产,一个用于开发。无论您需要作为默认值,请将其命名为settings.py
只需将DJANGO_SETTINGS_MODULE
设置为您想要使用的文件的 python路径。
因此,如果您的设置文件为myproject/settings.py, myproject/settings_dev.py
;然后你可以这样做:
$ DJANGO_SETTINGS_MODULE=settings_dev python manage.py shell
来自myproject
目录。
答案 1 :(得分: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
我建议你将一个local_settings.py.example放在gitrepo中的设置文件旁边。这样,无论何时部署到新环境,只需复制此示例并更改必要的行。