[TIL] Django Model

H21·2021년 5월 12일
0

Djagngo

목록 보기
5/5

python 코딩을 통해 데이터 조작

-django shell 환경은 python shell과 유사하지만 django의 모든 환경설정을 담고 있는 settings.py를 비롯하여 각종 django의 기능들을 활성화한 상태에서 실행.
이러한 툴을 REPL(Read, Evaluate, Print, Loop)이라 부름



1. shell로 data 다루기


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 테이블 내부에 있는 모든 데이터를 불러옴



2. shell로 data 검색하기


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]

profile
beyond limit

0개의 댓글