백엔드 개발/Python,django

[Django]Django 데이터 꺼내오기

독학하는 정호빈 2022. 7. 5. 13:24

안녕하세요. 코딩을 독학하고 있는 정호빈입니다.

저번 글에서 장고로 데이터를 저장하는 방법에 대해서 알아보았습니다. 이번에는 그 데이터를 가져와서 내가 원하는 대로 가공해서 사용하는 법을 알아보겠습니다. 저번에는 개인정보를 저장했었고 장고에서는 로그인 기능을 지원하는 관련 모델이 있기 때문에 그 부분은 나중에 다루고 데이터를 불러오는 것에 초점을 두고 진행하겠습니다.

 

이전 내용

https://seongjangjhb.tistory.com/41 

 

[Django]Django 데이터베이스 다루기

안녕하세요. 코딩을 독학하고 있는 정호빈입니다. 이번에는 장고에서 지원하는 데이터베이스에 대해 알아볼 건데요. 일반적으로 데이터베이스와 연동을 할 땐 데이터베이스 연결 함수라던지

seongjangjhb.tistory.com

 

 

 

지난번에 아이디랑 비밀번호를 abcdef, 123456으로 간단하게 저장했었는데 불러와서 데이터를 출력하도록 해보겠습니다. 우선 간단하게 views.py, urls.py을 세팅해줍시다.

 

 

urls.py

 

 

 

views.py

 

 

 

new2로 이름을 짓고, 저장한 데이터를 불러오는 방법은 여러 가지 있는데 두 가지 정도만 다루어보도록 하겠습니다. 우선 해당 views.py에서 사용한 모델.objects.filter()가 있는데요 이 방법으로는 () 안에 칼럼 값으로 해당 객체를 불러오는 방법입니다. 불러와진 객체는 queryset으로 저장되기 때문에 for문 같은 걸로 객체를 꺼내어 사용해주어야 오류 없이 사용할 수 있습니다. 추가로 get_object_or_404()는 pk값 즉, 기본키 값으로 객체를 불러옵니다. 해당 방법은 queryset에서 원했던 객체를 그대로 뽑아 오기 때문에 예시로 Users.password가 가능합니다.

 

 

 

다시 views.py로 돌아가 모델.objects.filter()을 사용했는데 아무것도 지정하지 않았기 때문에 모든 객체를 불러오는데 저번에 하나만 데이터를 저장해서 아마도 abcdef 123456이 불러와질 것입니다. 이제 해당 데이터를 템플릿으로 보내는 과정이 바로 {}를 사용해서 키값과 value값으로 json형태로 보내줄 수 있게 됩니다. 그러면 템플릿에선 어떻게 데이터를 받아서 표시하는지 알아봅시다.

 

 

 

new2.html

 

 

키값이 post였고 for문을 이용해서 queryset에 있는 객체들을 출력하기 위해 {{}}를 사용했습니다. 결과를 한번 살펴보겠습니다.

 

 

 

 

 

저장했던 아이디와 비밀번호가 제대로 불러진 것을 확인할 수 있습니다.

 

 

 

 

기본적으로 데이터를 저장하고 불러오는 과정을 살펴보기 위해 예시로 아이디와 비밀번호를 모델로 만들어 본 것이고 실제로 로그인 구현을 하기 위해선 쿠키나 세션도 사용하고 비밀번호도 비교해봐야 됩니다. 그러한 과정을 줄여주기 위해 장고가 제공하는 auth 로그인 기능을 다음 내용에서 다루어 보도록 하겠습니다.

(실제로는 이 auth기능은 한정적이어서 다양한 기능과 정보를 구현해야 될 때는 굳이 쓰지는 않는다고 합니다.)

 

감사합니다.