当前位置: 首页 > 面试题库 >

如何知道Django中数据库的当前名称?

景鸿才
2023-03-14
问题内容

我正在django项目中编写测试。现在,我有两个数据库连接:

(settings.py)
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db_name'
        ...
    },
}

和自定义连接到MongoDB:

import sys
from pymongo import Connection
from pymongo.errors import ConnectionFailure
try:
    connection = Connection(host="localhost", port=27017)
    db = connection['db_name']
    print "Connected successfully(Mongo, db_name)"
except ConnectionFailure, e:
    sys.stderr.write("Could not connect to MongoDB: %s" % e)
    sys.exit(1)

我想知道我的项目何时运行

python manage.py test myapp

因为在运行测试时,django会自动创建单独的数据库(名称类似于 test_db_name ),但是在这种情况下,Mongo仍将使用
db_name 运行。我试过了:

import sys
from pymongo import Connection
from pymongo.errors import ConnectionFailure
from django.db import connections

try:
    connection = Connection(host="localhost", port=27017)
    db_name = connections['default'].settings_dict['NAME']
    db = connection[db_name]
    print "Connected successfully(Mongo, %s)" % (db_name,)
except ConnectionFailure, e:
    sys.stderr.write("Could not connect to MongoDB: %s" % e)
    sys.exit(1)

但它不起作用


问题答案:

要获取具有最新Django版本(尝试使用1.8)的数据库名称:

from django.db import connection
db_name = connection.settings_dict['NAME']
# Or alternatively
# db_name = connection.get_connection_params()['db']

请注意在初始化后读取此值,以便在运行单元测试时它具有正确的值。



 类似资料:
  • 问题内容: 这有点像“鸡还是蛋”查询,但是有人可以梦想一个查询,该查询可以返回执行查询的当前数据库实例的名称吗?当我说我理解这个悖论时,请相信我:如果您已经连接执行查询,为什么需要知道数据库实例的名称?在多数据库环境中进行审核。 我已经看过联机丛书中的所有接近,但是我想要数据库实例而不是服务器的名称。 问题答案: 返回数据库名称。

  • 问题内容: 在Django中,我怎么知道当前登录的用户? 问题答案: 你需要在哪里了解用户? 在视图中,用户在请求中以形式提供。 有关模板中的用户处理,请参见此处 如果要保存模型实例的创建者或编辑者,则可以执行以下操作: 模型 管理员 我在互联网上找到了,但现在不知道在哪里

  • 本文向大家介绍如何获取当前数据库版本?相关面试题,主要包含被问及如何获取当前数据库版本?时的应答技巧和注意事项,需要的朋友参考一下 使用 select version() 获取当前 MySQL 数据库版本。

  • 本文向大家介绍如何在Python Shell中知道/更改当前目录?,包括了如何在Python Shell中知道/更改当前目录?的使用技巧和注意事项,需要的朋友参考一下 您可以使用os模块在Python中更改目录或cd。它以您要切换到的目录的相对/绝对路径作为输入。 例如 要了解当前的工作目录或密码,请使用os模块。 例如

  • 问题内容: 我必须根据当前URL动态构建一个URL。使用标记是最简单的方法,但是我需要当前的URL名称来动态生成新的URL。 如何获取链接到指向当前视图的urlconf的url名称? 编辑:我知道我可以手动使用url,但是我宁愿避免使用它,因为它是讲座的一部分,我只想演示一种构建url的方法。 学生知道如何使用。他们知道当他们必须根据当前URL生成更完整的URL时遇到问题。最简单的方法是再次使用,

  • 问题内容: 尝试使用WebMatrix启动网站时出现此错误。我有一个.cs文件可以拨打电话。 我的项目中有一个名为“ dbase”的数据库。自从使用WebMatrix启动网站以来,我没有web.config文件,也没有使用WebMatrix包的导入,因此我认为我不需要它们。我需要将代码包装在Razor标签中吗?这也给我造成了错误。 是什么原因造成的?有人对此有任何解决方案吗? 问题答案: 您需要一

  • 问题内容: 这是我在jQuery中的响应代码: 每个都是形式。 我希望访问javascript中的这两个数据位,如果我事先不知道例如什么,该怎么做? 问题答案: 使用检索键名的完整列表(阵列)。一个polyfill 在这里可用。 您问题的回答格式仅包含一对键值对。然后可以将代码简化为: 如果你没有在列表中感兴趣的话,使用循环 使用 。必须使用最后一种方法,以排除从原型继承的属性。

  • //MySQL,,mysql -v select version(); //Oracle select * from v$version;