Django - 1월~12월까지의 데이터 가져오면서 변수명 만들기
Web/Django

Django - 1월~12월까지의 데이터 가져오면서 변수명 만들기

뉴비뉴 2020. 4. 20.

안녕하세요.

 

 

1월~12월까지의 데이터 가져오면서 변수명 만들기

오늘은 Django ORM 을 사용하다가 1월~12월까지의 데이터를 한번에 가져오는 방법을 생각하다가

얻은 저만의 방법을 까먹지 않기 위해 포스팅해보려고 합니다.

 

Work라는 테이블이 있고,

workday 라는 Datetype의 필드가 있다고 가정하겠습니다.

 

제가 원하는 값은 달 마다 얼마나 많은 일을 했는지 값을 보고 싶은 상황입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
from datetime import datetime
 
 
today = datetime.now()
 
for i in range(113):  # 1~12월의 값을 생성해줍니다.
    globals()[f'month_{i}'= Work.objects.filter(
        workday__year=today.strftime('%Y'),
        workday__month=i
    )
 
print(month_1)  # 이번년도 1월에 쌓인 데이터를 가져올 수 있습니다.
 

 

추가로 지역변수와 전역변수에 대해 알아보겠습니다.

 

지역변수란

- 함수 안에서 생성되는 변수입니다.

- 해당 지역을 벗어날 때 메모리에서 제거되므로 외부에서 참조할 수 없는 변수입니다.

 

전역변수란

- 함수 밖의 전역 공간에서 선언된 변수

- 함수안에서 참조가 가능하지만 변경은 하지 못합니다.

ex) global a 를 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있도록 해준다.

* 하지만 전역변수를 함수 내에서 임의로 지정하여 사용하는 것은 권장하지 않는다고 합니다.

* global 문을 사용하는 것은 함수가 매개변수와 반환값을 이용해 외부와 소통하는 자연스러운 흐름을 깨트리는 일

 

 

보완해야 될 점이나 이 부분을 추가했으면 좋겠다는 점 있으면 댓글 달아주시면 감사하겠습니다. : )

댓글

💲 추천 글