如何归档以下内容......
我需要传递两个变量日期作为长格式并使用原始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')
The docs mention how to do this.注意如果您使用的是SQLite数据库,则无法使用此方法。
作为旁注,使用原始查询应该是您的最后手段。 Django ORM现在相当不错,如果存在ORM不支持的查询类型(罕见),或者ORM生成的查询字符串与自定义原始查询相比具有显着的性能成本,那么您应该只使用原始查询。查询集(ORM查询返回的对象)也很容易变成JSON,就像你在这里做的那样。