Django数据库并非始终可用

Django数据库并非始终可用,django,django-models,django-settings,django-database,Django,Django Models,Django Settings,Django Database,我在settings.py中指定了多个数据库。其中一个数据库是本地Oracle数据库,仅在我的工作计算机上可用。因此,当我在一台无法访问Oracle数据库的计算机上打开我的站点时,我看到出现了一个服务器错误。请与管理员联系。 因此,当我在工作计算机上时,我的代码正常工作,但当我从另一台无法访问本地Oracle数据库的计算机联机使用我的页面时,代码会失败 我不想远程访问本地数据库。我只想在无法访问本地Oracle数据库时忽略此错误。您可以在设置.py中使用if语句,因为它只是一个Python脚本。

我在settings.py中指定了多个数据库。其中一个数据库是本地Oracle数据库,仅在我的工作计算机上可用。因此,当我在一台无法访问Oracle数据库的计算机上打开我的站点时,我看到出现了一个服务器错误。请与管理员联系。

因此,当我在工作计算机上时,我的代码正常工作,但当我从另一台无法访问本地Oracle数据库的计算机联机使用我的页面时,代码会失败


我不想远程访问本地数据库。我只想在无法访问本地Oracle数据库时忽略此错误。

您可以在
设置.py
中使用
if
语句,因为它只是一个Python脚本。因此,您可以添加一个函数来检测您是否在工作,然后使用该函数决定是否应将仅在工作状态的数据库添加到
数据库
变量中

# in settings.py

def at_work():
    'Determines whether the project runs at work'

if at_work():
    DATABASES = {...}
else:
    DATABASES = {...}

当然,如果您的模型依赖于仅在工作时可用的数据库,则即使没有可用数据,您也需要添加一个模拟数据库,以便在其他地方使用模型。

您可以在设置模块中使用一个对您工作的环境唯一的
local.py
文件。给定一个设置模块,您可以将以下内容放入
\uuuu init\uuuuu.py

try:
    import .local
except ImportError:
    pass
然后在Oracle数据库可用的计算机上,在本地设置文件中设置正确的设置,但不要将其签入版本控制系统(例如,将其放入
.gitignore


还要注意设置中的顺序,导入本地设置后,如果要保留更改,则不应覆盖它们。您可以在文件中向下移动导入,也可以将设置添加到现有目录中。

谢谢!如何确定我是否在工作计算机上?您可以设置环境变量,读取主机名,在您选择的位置为其创建特定文件。。。有许多可能性。任何依赖于系统的东西都可以。我觉得,通常这是通过创建多个设置文件来实现的,这没有意义。决定访问数据库的不是浏览器的位置,而是服务器:访问Oracle的是服务器。丹尼尔·罗斯曼:可能是因为我没有安装cx_Oracle模块?