如何测试Django中的数据库连接?

6 投票
1 回答
8725 浏览
提问于 2025-04-16 22:38

我该如何测试Django的数据库连接呢?比如说,确认一下数据库的用户名和密码是否正确。

或者,如果这样更简单的话,我应该在哪里“捕捉”数据库连接失败时的错误呢?

我有一个场景,用户在表单中填写数据库连接参数。我需要确保用户名和密码是正确的,并且数据库能够成功连接,然后才能继续后面的操作。

我好像找不到相关的文档,因为大多数文章都假设数据库连接总是成功的。

提前谢谢你们。

1 个回答

4

写一个中间件(可以参考“Django是如何处理请求的”),这个中间件要检查数据库连接是否正常,然后把用户引导到编辑表单。

class DbCheckMiddleware(object):

    def process_request(self, request):
        try:
            "Some DB Code"
            success = True
        except:
            success = False                

        request.db_connection_successful = success

为了提高性能,缓存一下'db_connection_successful'的状态。

撰写回答