Django ORM

旅人·2023년 5월 31일
0
post-thumbnail

Django에서는 ORM을 사용하고

Python shell을 통해서도 터미널에서 DB에 접근할 수 있는 듯

python manage.py shell


지난 시간에 이어, 마이그레이션을 한 Article 모델 데이터를 다뤄본다.

article 데이터를 생성하고, title을 Hello World!로 설정한 후 저장
저장한 후, 잘 저장되었는지 데이터와 속성을 조회까지 해보았다.

>>> article = Article()
>>> article
<Article: Article object (None)>
>>> article.title = "Hello, world!"
>>> article
<Article: Article object (None)>
>>> article.title
'Hello, world!'
>>> article.save()
>>> Article.objects.all()
<QuerySet [<Article: Article object (1)>]>
>>> Article.objects.all()[0].title
'Hello, world!'

그리고, Django는 기본적으로 SQLite라는 경량 DBMS를 사용하도록 되어있다고 한다.
SQLite를 다뤄보려면 아래의 HP에서 다운받자

https://sqlitebrowser.org/dl/


str

(double underscores) str (double underscores) 메서드는 객체의 정보를 사용자가 이해할 수 있는 문자열로 반환하는 메서드

java class에서 자주 볼 수 있는 toString 메서드 같은 놈인듯

articles/models.py

from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField()
    body = models.TextField()
    date = models.DateTimeField(auto_now_add=True)
    # add in thumbnail
    # add in author

    def __str__(self):
        return self.title
  • 각 article의 title 필드를 객체 정보로 보여줄 것
  • 클래스 내부에서 정의해야 한다. indent 주의

잘 정의했다면, 다시 python shell에서 데이터 조회를 해본다.

>>> from articles.models import Article
>>> Article.objects.all()
<QuerySet [<Article: Hello, world!>, <Article: Django, wow!>]>

참고

https://www.youtube.com/watch?v=eio1wDUHFJE&list=PL4cUxeGkcC9ib4HsrXEYpQnTOTZE1x0uc&index=8

https://velog.io/@thovy/Python-Django-Shell-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0

(python shell & ORM)

https://dev-yakuza.posstree.com/ko/django/orm/

( str )

https://goodthings4me.tistory.com/59

(SQLite)

https://shiningyouandme.tistory.com/16

profile
一期一会

0개의 댓글