如何存档以下内容。。。
我需要传递两个变量date,它以长格式出现,并使用原始sql django在子查询中应用这个变量
def duplicatephoneno(request):
cursor = connection.cursor()
payload = json.loads(request.body.decode('utf-8'))
print(payload)
if payload:
startdate=payload['from']
enddate=payload['to']
with connection.cursor() as cursor:
cursor.execute(MYSQLdb.escape_string("SELECT * FROM `allergy` WHERE `allergy`.`patient_n_key` IN (SELECT `patient_masters`.`patient_n_key` FROM `patient_masters` WHERE `patient_masters`.`created_on`between %s AND %s)",[startdate], [enddate]))
row = dictfetchall(cursor)
patientuser=serializers.serialize('json', row)
return HttpResponse(patientuser, content_type='application/json;charset=utf8')
2条答案
按热度按时间owfi6suc1#
试试这个
cclgggtu2#
文件提到了如何做到这一点。注意:如果使用的是sqlite数据库,则不能使用此方法。
顺便说一下,使用原始查询应该是您最后的选择。django orm现在相当不错,如果存在orm不支持的查询类型(罕见),或者orm生成的querystring与自定义的原始查询相比有很大的性能开销,那么实际上应该只使用原始查询。queryset(orm查询返回的对象)也很容易转换成json,就像您在这里所做的那样。