local_settings.py的不同方法
Django(72)几个星期前我发言时django纽约,在我的一个幻灯片中,我介绍了local_settings.py.Django的诀窍,在下一个幻灯片上,我提到了对标准技巧的轻微变种,我试图以前介绍,但这个想法在更长的文章中迷失了。
真的local_settings.py.
这个技巧的原始版本很简单,非常有用。在你的底部settings.py.
文件,添加这四行
尝试:从本地设置进口*除了ImportError.:经过
然后你可以创建一个自定义local_settings.py.
带有覆盖的文件,用于您的机器的设置,而且您是金色的。
当您创建公共存储库时,请确保不要放置您的local_settings.py.
进入版本控制,但您仍然可以创建一个local_settings.py.template.
文件的文件cp local_settings.py.template local_settings.py.
然后编辑他们喜欢。
我说的变种
我第一次使用这个变体我正在研究我部署了两个地方的应用程序:在我的vps.在我的个人机器上。我希望能够在版本控制中保持设置,但每次更新已被检查的项目时,都不需要进行修改。
我的解决方案就是这样的:
有
settings.py.
包含所有共享设置的文件,仍然以:尝试:从本地设置进口*除了ImportError.:经过
存储我的开发机器的设置
devel_settings.py.
并存储VPS的设置vps_settings.py.
。在每次开发上,创建一个
local_settings.py.
仅包含一行的文件。对于我的开发服务器,该行是:从devel_settings.进口*
对于我的vps,这条线是:
从vps_settings.进口*
这样做,我可以轻松修改两个设置并将它们保留在版本控制INCASE中我想在另一台计算机上部署项目。
本质上是在这里所做的事情是类似于子类设置文件的东西,并覆盖必要的东西。如果您愿意,您可以使用此内容进行带走,并在您喜欢的情况下使用设置自助式。
例如,您可以有一个名为的文件site_caching_settings.py.
看起来像这样:
cache_backend.=“memcached://127.0.0.1:11211 /”cache_middleware_seconds.=60.*30.cache_middleware_key_prefix.=“scs”cache_middleware_anonymous_only=真的middleware_classes.=('django.contrib.sessions.middleware.sessionmiddleware'那'django.contrib.auth.middleware.authenticationMiddleware'那'django.middleware.cache.cachemiddleware'那)+middleware_classes.
你可以有一个名为的文件sqlite_settings.py.
:
root_path.=OS.。小路。妄想(__文件__)database_engine.='sqlite3'数据库名称=OS.。小路。加入(root_path.那'db.sqlite')database_user.=''database_password.=''database_host.=''database_port.=''
最后,在你的local_settings.py.
您将导入您想要的件(以及覆盖要修改的内容):
从site_caching_settings.进口*从sqlite_settings.进口*cache_backend.=“localmem:///”
你是对的。它没有扩展。
我认为这种方法的明显弱点是它不会很好地扩展,它不是标准的替代品local_settings.py.
诀窍,但它对我的项目提供了很好的服务,只需要在少量环境中部署。例如,不打算是可重用或可插拔应用程序的工作和个人项目。