django中数据库连接的最小化测试

时间:2016-06-28 12:04:02

标签: django

我正在编写一个快速的小测试视图,我可以每隔几分钟GET检查我的应用程序和数据库服务器是否在线并正常运行。

from django.http import HttpResponse, HttpResponseServerError
from my_app.models import Model

def test(request):
    '''
    Returns a HttpResponse to prove the application/db servers work
    '''
    if request.method == "GET":
        #test database access
        count = Model.objects.values_list('id', flat=True).count()
        if count:
            return HttpResponse("OK")

    return HttpResponseServerError("Error")

我是否可以使用更少的内置数据库查询来测试数据库服务器是否正在运行并接入应用服务器,而不必像上面那样做假的?

1 个答案:

答案 0 :(得分:3)

您可以导入django连接并检查您的数据库:

from django.db import connections
try:
    cursor = connections['default'].cursor()
except OperationalError:
    return HttpResponseServerError("Error")
else:
    return HttpResponse("OK")
return HttpResponseServerError("Error")

Documentation here