【发布时间】:2015-10-21 08:32:13
【问题描述】:
我在Django中有一个用于数据库连接的小功能如下:
def db_connection(query_name):
try:
cursor = connection.cursor()
cursor.execute(query_name)
descr = cursor.description
rows = cursor.fetchall()
result = [dict(zip([column[0] for column in descr], row)) for row in rows]
return result
except Exception as e:
return e
finally:
cursor.close()
这个函数在我的函数视图中用于Django rest框架执行SQL查询。一般语法如下:
@api_view(['GET'])
def foo_bar(request):
....
....
....
query1 = "Select name from table"
result = db_connection(query1)
return Response(result, status=status.HTTP_200_OK)
但是,我需要根据我的 db_connection 函数的返回值更改响应元组中的状态值,即如果没有异常发生则返回 200 OK,否则返回 500。如何检查返回值是否函数是异常?
【问题讨论】:
-
Django 有一个非常好的访问数据库的框架。你不使用它有什么原因吗?
-
我很清楚通过 ORM.. 像手动处理防止 sql 注入的处理来命名其中之一..但是..这个应用程序是一个分析应用程序和 Django ORM只是不足以满足我的需求,因此原始 SQL ..
标签: python django function exception-handling django-rest-framework