我有一个带两个数据库的Django应用程序。一个拥有关键信息,另一个拥有一些很好的杂项数据。
第二个数据库不属于我,不可靠,我不能确定它总是响应或者它的模式总是与我的Django模型匹配。
我的问题是,当Django服务器找不到第二个数据库时,它无法启动。我想要做的是写一个Django视图,这样当第二个数据库好时它会显示它的数据,但是当它关闭或不遵守模型时,并不坚持。
用try-catch围绕模型和路由器会不会这样做?有人有任何其他建议吗?
答案 0 :(得分:1)
如果连接到视图中的数据库,则会丢失django提供的ORM。您必须自己负责安全,连接和其他问题。但是,如果您坚持这样做,可以使用mysql-connector。试试这个link。
此外,您需要从设置文件中删除此数据库的数据库设置。仅保留主数据库连接设置。
从设置控制数据库连接(注意这是一个黑客攻击):
在settings.py
文件中,进行以下更改。
import mysql.connector
try:
cnx = mysql.connector.connect(user='user', password='password',
host='your_settings',
database='your_db_name')
cnx.close()
DATABASES['custom_db'] = {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'your_db_name',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'ip_where_hosted',
'PORT': '',
}
except:
pass