기본-1 django db

dingdong·2022년 1월 11일
0

BASIC ORM

목록 보기
1/2

아래와 같은 Model 이 있을때,

# instagram.models.py

from django.db import models


# Create your models here.
class Post(models.Model):
    message = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    
    def __str__(self):
        # return f"Custom Post object ({self.id})" # Python >= 3.7
        # return "Custom Post object ({})".format(self.id)
        return self.message

1) veritualenv 로 접속

root@km-VirtualBox:~/django-with-react-study# source venv/bin/activate
(venv) root@km-VirtualBox:~/django-with-react-study# cd askcompany/

2) python manage.py shell 를 통해서 DB로 접속합니다.

(venv) root@km-VirtualBox:~/django-with-react-study/askcompany# python manage.py shell
Python 3.8.10 (default, Nov 26 2021, 20:14:08)

3) Post 모델의 전체 Queryset 정보

>>> from instagram.models import Post
>>>
>>> Post.objects.all()
<QuerySet [<Post: 첫번째 메세지>, <Post: 두번째 메세지>, <Post: 세번째 메세지>]>

4) filter 사용 해보기

  • 속성__icontains 은 DB에서 like 같은 기능
>>> Post.objects.all().filter(message__icontains='첫번째')
<QuerySet [<Post: 첫번째 메세지>]>
>>>

5) SQL 문으로 확인해보기

>>> print(qs.query)
SELECT "instagram_post"."id", "instagram_post"."message", "instagram_post"."created_at", "instagram_post"."updated_at" FROM "instagram_post" WHERE "instagram_post"."message" LIKE %첫번째% ESCAPE '\'
>>>
profile
자동화 개발

0개의 댓글