我正在尝试从mysql获取记录,如果找到记录,则在mysql记录中添加成功状态并通过jsonify
函数返回,另一方面,我正在获取响应,然后检查状态是否为成功或不是。
这是我的回复格式
[ { "SQL_STATUS": true }, { "id": "126","etc":"etc"} ]
我需要检查SQL_STATUS是true
还是false
,所以我尝试了以下方法
response.SQL_STATUS
但出现以下错误
AttributeError: 'Response' object has no attribute 'SQL_STATUS'
这些是我的代码
def Details(self,request):
res = self.db.SelectByConditionModel(request,self.model)
if res.SQL_STATUS == True:
response_data = SuccessResponse('','Success')
else:
response_data = ErrorResponse(res,"Database Error")
return response_data
这是我正在执行选择操作的基础
@staticmethod
def SelectByConditionModel(request,model):
try:
where_condition = []
for key in request:
where_condition.append(key+"='"+conn.escape_string(str(request[key]))+"'")
where_condition_str = ', '.join(where_condition)
sql = ''' SELECT * from %s WHERE %s ''' %(model.TABLE, where_condition_str)
cursor.execute(sql)
row_headers=[x[0] for x in cursor.description]
conn.commit()
data = cursor.fetchall()
json_data=[]
json_data.append({"SQL_STATUS" : True})
for result in data:
json_data.append(dict(zip(row_headers,result)))
return jsonify(json_data)
except Exception as e:
return str(e)
我需要检查SQL_STATUS是对还是错,请帮助我
答案 0 :(得分:2)
您的json_data
是list
。 list
是通过索引而不是通过属性访问的。
json_data[0]['SQL_STATUS']
这会给您您想要的。但是,您需要在返回之前将其转换为字符串-因此,您需要将其转换为对象才能像这样访问它。
@staticmethod
def SelectByConditionModel(request,model):
try:
where_condition = []
for key in request:
where_condition.append(key+"='"+conn.escape_string(str(request[key]))+"'")
where_condition_str = ', '.join(where_condition)
sql = ''' SELECT * from %s WHERE %s ''' %(model.TABLE, where_condition_str)
cursor.execute(sql)
row_headers=[x[0] for x in cursor.description]
conn.commit()
data = cursor.fetchall()
json_data=[]
for result in data:
json_data.append(dict(zip(row_headers,result)))
return True, jsonify(json_data)
except Exception as e:
return False, str(e)
在这里,我将分别从方法中返回SQL_STATUS
。而不是将其添加到响应中。然后,您可以这样做:
def Details(self,request):
sql_status, res = self.db.SelectByConditionModel(request,self.model)
if sql_status:
response_data = SuccessResponse('','Success')
else:
response_data = ErrorResponse(res, "Database Error")
return response_data