본문 바로가기
파이썬/파이썬기본문법

파이썬 Django QuerySet : Get Data

by flycoding 2024. 3. 11.
반응형

파이썬 Django QuerySet : Get Data

모델에서 QuerySet으로 데이터를 가져오는 방법에는 여러 가지가 있다.

 

파이썬 Django QuerySet valuse() 메소드

values() 메서드를 사용하면 이름과 값을 키/값 쌍으로 사용하여 각 개체를 Python 사전으로 반환할 수 있다:

template.html

<!DOCTYPE html>
<html>
<body>

<p>The queryset object:</p>
{{ mymembers }}

<p>Loop through the items:</p>

<table border='1'>
  <tr>
    <th>ID</th>
    <th>Firstname</th>
    <th>Lastname</th>
  </tr>
  {% for x in mymembers %}
    <tr>
      <td>{{ x.id }}</td>
      <td>{{ x.firstname }}</td>
      <td>{{ x.lastname }}</td>
    </tr>
  {% endfor %}
</table>

</body>
</html>
views.py

from django.http import HttpResponse
from django.template import loader
from .models import Member

def testing(request):
  mydata = Member.objects.all().values()
  template = loader.get_template('template.html')
  context = {
    'mymembers': mydata,
  }
  return HttpResponse(template.render(context, request))
  


# Check out template.html to see how the mymembers object
# was used in the HTML code.          

위의 코드를 실행하면 아래 그림과 같다.

파이썬 Django QuerySet values() 메소드 활용 예제

 

파이썬 Django QuerySet values_list() ; 특정 열 반환

values_list() 메서드를 사용하면 지정한 열만 반환할 수 있다.

 

이름 열만 반환한다:

template.html

<!DOCTYPE html>
<html>
<body>

<p>The queryset object:</p>

{{ mymembers }}

<p>Loop through the items:</p>

<table border='1'>
  {% for x in mymembers %}
    <tr>
      <td>{{ x }}</td>
    </tr>
  {% endfor %}
</table>

</body>
</html>  
views.py

from django.http import HttpResponse
from django.template import loader
from .models import Member

def testing(request):
  mydata = Member.objects.values_list('firstname')
  template = loader.get_template('template.html')
  context = {
    'mymembers': mydata,
  }
  return HttpResponse(template.render(context, request))
    


# Check out template.html to see how the mymembers object
# was used in the HTML code.        

위의 코드를 실행하면 아래 그림과 같다.

파이썬 Django QuerySet values_list() 메소드 활용 예제

 

파이썬 Django QuerySet filter() ; 특정 행 반환

filter() 메서드를 사용하여 검색을 특정 행/레코드만 반환하도록 필터링할 수 있다.

 

이름이 'Emil'인 레코드만 반환한다

template.html

<!DOCTYPE html>
<html>
<body>

<p>The queryset object:</p>

{{ mymembers }}

<p>Loop through the items:</p>

<table border='1'>
  <tr>
    <th>ID</th>
    <th>Firstname</th>
    <th>Lastname</th>
  </tr>
  {% for x in mymembers %}
    <tr>
      <td>{{ x.id }}</td>
      <td>{{ x.firstname }}</td>
      <td>{{ x.lastname }}</td>
    </tr>
  {% endfor %}
</table>

</body>
</html>
views.py

from django.http import HttpResponse
from django.template import loader
from .models import Member

def testing(request):
  mydata = Member.objects.filter(firstname='Emil').values()
  template = loader.get_template('template.html')
  context = {
    'mymembers': mydata,
  }
  return HttpResponse(template.render(context, request))
      


# Check out template.html to see how the mymembers object
# was used in the HTML code.   

위의 코드를 실행하면 아래 그림과 같다.

파이썬 Django QuerySet filter() 메소드 활용 예제

 

이번 글에서는 파이썬 Django QuerySet에 데이터를 얻는 방법에 대해서 살펴보았다.

파이썬 Django QuerySet에서 데이터를 모두 얻는 values() 메소드, 특정 열을 추출하는 values_list() 메소드, 특정 행을 추출하는 filter() 메소드를 실습하였다.

 

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

'파이썬 > 파이썬기본문법' 카테고리의 다른 글

파이썬 Django QuerySet - order_by()  (0) 2024.03.13
파이썬 Django QuerySet filter  (2) 2024.03.12
파이썬 Django QuerySet  (0) 2024.03.10
파이썬 Django include 태그  (0) 2024.03.09
파이썬 Django 주석(Comments)  (0) 2024.03.08

댓글