Web/Django-python

Django DB API

장고 튜토리얼의 polls 예제에 있는 DB 관련 API들에 대해 정리해봤다. 기본적으로는 파이썬 문법을 따라가기 때문에 이해하는데에 크게 어려움은 없었고,

일반적인 DB에서 사용하는 sql 쿼리문 대신 이런식으로도 데이터를 가져올 수 있구나~ 정도만 알아두면 될것같다.

python3 manage.py shell

manage.py에 설정된DJANGO_SETTINGS_MODULE환경변수 때문에 위와같이 쉘을 실행한다.

mysite/settings.py 파일의 import내용을 그대로 가져와 python 쉘에서 사용할 수 있게 하기 때문에, 대화식 Python 쉘에서 Django가 접근할 수 있는 Python 모듈 경로를 그대로 사용 할 수 있다.

즉, Django에서 동작하는 모든 명령을 대화식 Python 쉘에서 그대로 시험해 볼 수 있다.

>>>q = Question(question\_text="What's new?", pub\_date=timezone.now())

>>>q.save()  

models.py 에서 선언한 Question 이라는 클래스형에 맞게 데이터를 하나 만들어준거다.

이 데이터는 아래와 같은 명령어들로 찾아와볼 수 있는데, 출력하면 다 똑같이 나올거다.

>>> Question.objects.all() - 만들어진 Question클래스 전체 데이터 출력

>>> Question.objects.filter(id=1) - id값이 1에 해당하는 데이터 출력

>>> current_year = timezone.now().year - 현재 일시 기준으로 년 데이터 가져와 current_year 라는 변수로 사용

>>>  Question.objects.get(pub_date__year = current_year) - 이번년도에 만든 데이터 가져옴 

해당 명령어들 모두 동일하게

<QuerySet [<Question: What's new?>]>

라고 맨처음에 정의했던 데이터를 출력하는 명령어 들이다.

-- 계속 작성중..