python 코딩을 통해 데이터 조작
-django shell 환경은 python shell과 유사하지만 django의 모든 환경설정을 담고 있는 settings.py를 비롯하여 각종 django의 기능들을 활성화한 상태에서 실행.
이러한 툴을 REPL(Read, Evaluate, Print, Loop)이라 부름
python manage.py shell
명령어 실행
>>> from posts.models import Post
>>> Post.objects.all()
<QuerySet [<Post: hv_nara: Amanproject, Kwon nara>,
<Post: _heeham: 첫 #halloween>, <Post: d_a___m_i: 오랜만이서>
결과물 확인 : Post.objects.all()
objects
라는 model manager 안에 있는 all()이라는 함수를 통해 데이터베이스로부터 Post 테이블 내부에 있는 모든 데이터를 불러옴
objects.get()
을 통해 함수 검색 (1개의 데이터만 해당)
>>> from posts.models import Post
>>> Post.objects.get(id=5)
<Post: _heeham: My New Post!>
filter()
을 통해 함수 검색 (여러 개의 데이터만 해당)
>>> Post.objects.filter(author="_heeham")
<QuerySet [<Post: _heeham: 첫 #halloween>, <Post: _heeham: My New Post!>]>
데이터 수정
>>> post = Post.objects.get(id=5)
>>> post.body = "My Edited Post!"
>>> post.save()
>>> post
<Post: _heeham: My Edited Post!>
delete()
을 통해 데이터 삭제
>>> post = Post.objects.get(id=5)
>>> post.delete()
(1, {'posts.Post': 1})
>>> Post.objects.all()
<QuerySet [<Post: hv_nara: Amanproject, Kwon nara>,
<Post: _heeham: 첫 #halloween>, <Post: d_a___m_i: 오랜만이서>,
order_by()
을 통해 데이터 정렬 (내림차순 -order_by())
osts = Post.objects.all().order_by('-created_at')[:3]