• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

영상 하단 pandas 이용한 DB접근 예시 중 질문

23.04.21 01:48 작성 조회수 159

0

위 스크린샷에서

마지막 말이 잘 와닿지가 않습니다.ㅠㅠ

그러니깐 장고qs객체를 pandas df객체로 변환하면 매번 SQL쿼리를 작성하지 않아도되는것인거고??? 장고를 통해 매번 SQL 쿼리를 작성하는 번거로움이 없어진다 는건가요???

위 예시만 보면 어쨌든 qs객체(SQL요청 준비 코드) 정의 하였고 결국 qs.values 메서드 코드에서 SQL이 날라가지 않나요???

 

새로운 사실을 알게되어 정확하게 이해해서 인사이트 얻고 넘어가고 싶어서 여쭤봅니다!

답변 2

·

답변을 작성해보세요.

1

안녕하세요.

데이터베이스로부터 데이터를 조회하여 pd.DataFrame를 생성코자할 때

우리가 직접 SELECT 쿼리 문자열을 작성하고, "SELECT id, message, is_public FROM blog_posts", connection.execute 를 통해 실행하고, fetchall을 통해 받아와서 pd.DataFrame 객체를 생성하는 것이 아니라,

장고에서 Raw SQL 실행하기. 공식문서 : https://docs.djangoproject.com/en/4.1/topics/db/sql/#executing-custom-sql-directly

장고 모델을 통해, 직접 SELECT 쿼리 문자열을 작성하지 않아도, Post.objects.all().values("id", "message", "is_public") 와 같은 파이썬 코드로 데이터베이스에 SELECT 조회하고 pd.DataFrame을 작성할 수 있습니다.

데이터베이스는 SQL 문자열을 받아서 실행하는 데, 이 SQL 문자열을 직접 작성하느냐 장고 모델이 작성해준 SQL 문자열을 활용하느냐의 차이인 것이죠.

화이팅입니다. :-)

0

아 ㅎㅎ 선생님 말을 착각 했네요!

RAW SQL 작성 안해도 장고ORM 써서 파이썬코드로

쿼리 할 수 있다에 방점이 찍혀있던거였네요.

이해했습니다