장고에는 shell을 이용해서 model의 내용을 읽고 생성하고 수정하고 삭제할수가 있다. 즉 CRUD가 터미널 명령으로 확인이 가능한 것이다. 물론 admin으로도 확인이 가능하지만 가능하면 shell을 통해 명령어를 확인하고 코딩을 하게되면 좀더 효과적으로 학습이 가능하다. shell에 입력이 가능한 명령어들을 정리해 봤습니다.
import
** 필요한 모델과 기능들을 불러오는 부분
from django.contrib.auth.models import User
from django.conf import setting
from chat.models import *
from accounts.models import *
CRUD
** objects 디폴트 메니저를 통해 crud를 구현할수 있다
R
from django.db.models import Q
from post.models import Post # Post 모델 불러오기
from django.contrib.auth.models import User # User 모델 불러오기
user = request.user # 현재 접속한 user 확인 FBV( 함수형 view 일때 )
user = self.request.user # 현재 접속한 user 확인 FBV( 클래스형 view 일때 )
Post.objects.all()
Post.objects.count() # 숫자확인
Post.objects.all().order_by(‘-id’)[:10]
Post.objects.get(pk=1)
Post.objects.values() # 전체 필드 확인
Post.objects.filter(username=’kindfamily’, gender=’남성’)
Post.objects.filter(Q(username=’kindfamily’) | Q(gender=’남성’)) # or
Post.objects.filter(Q(username=’kindfamily’) & Q(gender=’남성’)) # and
Post.objects.filter(username=’kindfamily’, gender=’남성’).exclude(location=’서울’) # 제외할 조건
C
Post.objects.create(name=’kindtiger’)
U
1 - row 하나씩 수정해야해서 느리다
post.Post.objects.get(id=1)
post.title = ‘django shell’
post.save
2 - 일괄 수정해서 조금더 빠르다
post = Post.objects.all()
post.update(title=’python shell’)
D
Post.objects.all().delete()
Post.objects.all().delete(pk=1)
기타
출처: 초보몽키의 개발로그 링크
모델의 첫번째 내용 출력하고 싶을때
YourModel.objects.all().first()
sql 내역 확인
1 |
|
포스팅 1000개 한꺼번에 만들기
1 |
|
filter를 통한 검색 구현
1 | def post_list(request): |
1 |
|