我在settings.py中指定了多个数据库。其中一个数据库是本地Oracle数据库,只能在我工作的计算机上使用。因此,当我在无法访问此Oracle数据库的计算机上打开我的站点时,我看到错误A server error occurred. Please contact the administrator.
。
因此,当我在工作计算机上时,我的代码工作正常,但是当我从另一台无法访问本地Oracle数据库的计算机上在线使用我的页面时,代码失败。
我不想远程访问本地数据库。我只是想在无法访问本地Oracle数据库时忽略该错误。
答案 0 :(得分:1)
您可以在设置模块中使用local.py
文件,该文件对您正在处理的环境而言是唯一的。给定设置模块,您可以将以下内容放在__init__.py
:
try:
import .local
except ImportError:
pass
然后,在Oracle数据库可用的计算机上,在本地设置文件中设置正确的设置,但不要将其签入到版本控制系统(例如,将其放入.gitignore
)。
在导入本地设置后,还要注意设置中的顺序,如果要保留更改,则不应覆盖它们。您可以在文件中向下移动导入,或者只是将设置添加到现有的dict中。
答案 1 :(得分:0)
您可以在if
中使用settings.py
语句,因为它只是一个Python脚本。因此,您可以添加一个函数来检测您是否在工作,然后使用该函数来决定是否应将仅在工作的数据库添加到DATABASES
变量。
# in settings.py
def at_work():
'Determines whether the project runs at work'
if at_work():
DATABASES = {...}
else:
DATABASES = {...}
当然,如果您的模型依赖于仅在工作时可用的数据库,您将需要添加模拟数据库以允许在其他地方使用模型,即使没有可用数据。