【发布时间】:2017-07-20 14:14:50
【问题描述】:
我正在开发一个使用 django 和 PostgreSQL 数据库的应用程序。该应用程序设计为在组织内使用,因此需要执行用户提供的 SQL 请求。为了处理格式错误的 SQL 请求的可能性,数据库调用被包装在一个 try/except 块中:
import psycopg2
...
def djangoView(request):
...
try:
result = DBModel.objects.raw(sqlQuery)
return getJSONResponse(result) #Serializes result of query to JSON
except psycopg2.Error:
pass #Handle error (no db requests are made)
但是,当我使用格式错误的 SQL 向视图发出请求时,我收到了 500 内部服务器错误。堆栈跟踪显示 500 的原因是 ProgrammingError,它是 psycopg2.Error 的子类。但是,except 语句没有正确捕获它。
【问题讨论】:
标签: python django postgresql