Django:检测数据库后端

我在Django中做了一些额外的查询,需要在sqlite和postgres上工作。这些查询的语法在后端有所不同,但我无法弄清楚我是否将查询发送到postgres或sqlite。

有没有办法获取当前的数据库适配器,所以我可以分支我的代码,并发送正确的查询活动数据库服务器?

最佳答案
好的,所以有两种做法,因为@ Ricola3D说可以选择设置.DATABASES [‘default’] [‘ENGINE’]:

>>> from django.conf import settings
>>> settings.DATABASES['default']['ENGINE']
'django.db.backends.sqlite3' or 'django.db.backends.postgresql_psycopg2'

但在连接上也有一个(未记录)的供应商属性:

>>> from django.db import connection
>>> connection.vendor
'postgresql' or 'sqlite'

无论哪种方式都可以。我个人更喜欢connection.vendor,因为它看起来漂亮:)

转载注明原文:Django:检测数据库后端 - 代码日志