티스토리 뷰

※본 자료는 김석훈, 『파이썬 웹 프로그래밍(개정판)』, 한빛미디어, pp151-218. 를 참고하여 만들었습니다.

 

 Django는 Admin 사이트를 제공함으로 관리자가 UI화면에서 CRUD를 할 수 있게 해준다. 하지만 복잡한 데이터 처리가 필요하거나 별도의 웹 브라우저를 접속 할 수 없는 경우 쉘로 데이터를 처리하는 것이 일반적이다. Django의 쉘은 python 명령도 실행 가능하지만 다른점은 manage.py 모듈에서 정의한 DJANGO_SETTINGS_MODULE 속성을 이용하여 미리 mysite.setting.py 모듈을 import 한다는 것입니다.

 

python manage.py shell 명령어를 이용하여 Django shell 실행

 

(1) shell을 이용한 Create - 데이터 생성/입력

 

 

 Django의 ORM은 테이블 구조를 클래스로 표현하기 때문에, 클래스를 생성해서 저장하면 내부적으로 SQL의 Insert 문장을 실행한다.

 

(2) shell을 이용한 Read - 데이터 조회

 

 데이터베이스로부터 데이터를 조회하기 위해서는 QuerySet 객체를 사용한다.QuerySet은 데이터베이스 테이블로부터 꺼내 온 객체들의 콜렉션이다. QuerySet은 필터를 가질 수 있으며, 필터를 사용하여 QuerySet 내의 항목 중에서 조건에 맞는 레코드만 다시 추출합니다. SQL 용어로 QuerySet은 SELECT 문장에 해당하며, 필터는 WHERE 절에 해당합니다.

 

Question.objects.all( ) # 'Question 테이블, 레코드들 모두'라고 해석하면 됨.

 

 모든 레코드가 아닌 조건에 맞는 일부 레코드만 검색할 때는 filter( ) 와 exclude( ) 메소드를 사용

 

  •  filter( ) 메소드 : 주어진 조건에 맞는 객체들을 담고 있는 QuerySet 콜렉션을 반환함.
  •  exclude( ) 메소드 : 주어진 조건에 맞는 객체들을 제외한 QuerySet 콜렉션을 반환함

 

  • get( ) 메소드 : 한 개의 요소만 있는 것이 확실한 경우

 

  • SQL의 LIMITE이나 OFFSET을 원하면 Python slicing을 이용하면 된다.

(3) shell을 이용한 Update - 데이터 수정

select하여 수정하고, 수정 이후 save() method를 통해 commit

 

 

(4) shell을 이용한 Delete - 데이터 삭제

 

 

select 이후 delete( ) 메소드를 이용해서 삭제

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함