본문 바로가기

웹/Django

python shell 에서의 CRUD 처리문

python manage.py shell로 쉘 기동

쉘에서는 데이터를 보다 효율적으로 관리가 가능

쉘은 SQL이 아니기 때문에 대,소문자를 구별한다.

__로 객체간의 관계를 표현할 수 있다.

 

!주의!

1:n 관계에서는 foreign key로 정의되어 있는 테이블이 있는데

만약 1:n = Question: Choice 라면

Choice 에서 Question을 검색하려면 그냥 question 속성을 

Question 에서 Choice를 검색하려면 Choice_set 속성을 사용한다.

 

CREATE 문

--insert문

save()로 처리

예시

q =Question(question_text='abc', pub_date = timezone.now())

q.save()

 

READ 문

--select문

--where 절은 filter(조건) ,exclude(제외할 조건)

--select의 결과는 object 

--[:5] 같이 슬라이싱으로 SQL의 OFFSET 과 LIMIT를 사용가능

예시

#모든 결과 가져오기

Question.objects.all()  

#question_text='abc' 중  pub_date가 오늘이 아닌 2005.1.30 일인 결과 

Question.objects.filter(question_text='abc')

                     .exclude(pub_date=datetime.date.today())

                     .filter(pub_date=datetime(2005,1,30)

# 결과가 하나일때 get()을 쓴다.

Question.objects.get(pk=1)

 

 

UPDATE

하나의 결과 update는 save()로 처리

복수의 결과 update는 update()로 처리

예시

--단일 결과

q.question_text = 'efg'

q.save()

--복수 결과

Question.objects.filter(pub_date=2007).update(question_text='everyThing is fine')

 

DELETE

delete()로 처리

#모든 객체 삭제

Question.objects.all().delete()

###!! 이 경우는 오류

Question.objects.delete()

 

 

' > Django' 카테고리의 다른 글

폼 처리하기  (0) 2020.12.10
템플릿 활용법3 - 템플릿 상속  (0) 2020.12.10
템플릿 활용법2 -템플릿 태그  (0) 2020.12.09
템플릿 활용법  (0) 2020.12.09
djngo 시작하기 -MTV 실습  (0) 2020.12.03