Django не показывает все результаты базы данных mysql, несмотря на использование метода fetchall - PullRequest
0 голосов
/ 28 марта 2019

У меня есть десять записей в базе данных mysql, и я использую fetchall() метод

Теперь у меня есть требования для отображения всех результатов базы данных в json с использованием sql запросов в django.

Когда я запускаюПриведенный ниже код показывает только первые записи, а остальные не отображаются.

Мне было интересно, почему я получаю только одну запись json, несмотря на использование fetchall () подхода

Вот код

from django.db import connection
def read(request):
    sql = 'SELECT * from crud_posts'
    with connection.cursor() as cursor:
         cursor.execute(sql)
         output = cursor.fetchall()
         print(output[0])
         items=[]
         for row in output: 
             items.append({'id':row[0], 'title': row[1],'content': row[2]})

             jsondata = json.dumps({'items': items})
             return HttpResponse(jsondata, content_type='application/json')  

1 Ответ

2 голосов
/ 28 марта 2019

Вы выходите из цикла for после первой итерации ... исправьте свою идентификацию:

from django.db import connection

def read(request):
    sql = 'SELECT * from crud_posts'
    with connection.cursor() as cursor:
         cursor.execute(sql)
         output = cursor.fetchall()
         print(output[0])
         items=[]
         for row in output: 
             items.append({'id':row[0], 'title': row[1],'content': row[2]})

         jsondata = json.dumps({'items': items})
         return HttpResponse(jsondata, content_type='application/json')  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...