본문 바로가기
내일배움캠프 AI 웹 프로그래밍

내일배움캠프 36일차 TIL_왕초보 '시리얼라이저'배우기

by thriveview 2023. 9. 22.

모델과정 + 데이터베이스 업데이트까지 하기 

 

 

새로운 터미널 하나 더 생성하고 밑에 코드 입력. (startapp)

python manage.py startapp articles #app 추가. 이걸 하고나면 왼쪽에 articles 파일이 생성된다

articles 추가했으니 settings.py에 가서 추가해주자 
INSTALLED_APPS -> 'rest_framework'위에  'articles' 추가 

 

django에서 프로젝트하고 가장 먼저해야할 일은 models.py 에서 모델을 만드는것이다.

시작해보자

1. articles 파일 ➜  models.py 클릭

2. Class 모델을 만들자 (아래 참고)

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField( )
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

 

3. 이 모델을 데이터베이스에 반영하는 작업! Migrate해주자 

python manage.py makemigrations #터미널에 입력

 

4. db.sqlite3에 가보면 실제로 데이터베이스에 반영이 안되어 있다.

python manage.py migrate #이 코드를 입력하고 새로고침하면 테이블 확인 가능

 

5. articles_article 테이블 눌러보기
Class 모델한것처럼 title, content, created_at, updated_at 이 만들어져있는것을 확인할 수 있다

 

6. articles 파일 ➨ admin.py 

from articles.models import Article #불러오기
.
.
admin.site.register(Article)

 

여기까지하면 서버가 돌아가고 있으니 사이트에 들어가서  url에다가 /admin/ 입력후, 떠오르는 화면 확인

 

 

사용자 이름만들러 다시 vsc로 돌아가자. 그리고 아래와 같이 사용자 이름 및 비밀번호 설정하고 url로 돌아가서 로그인하자.

python manage.py createsuperuser #터미널에 입력
#사용자이름: admin
#비밀번호: 알아서 설정

로그인 완료 후, 보이는 화면

 

article로 추가해보자 

 

 

article을 저장하면 생성된것을 확인할 수 있다

 

vsc로 가서 db.sqlite ➨ articles_article 테이블보면 업데이트 사항 확인

우리가 저장한 article이 작성한 제목(타이틀)로 나올 수 있도록 설정하자.

VSC ➜ articles ➜ models.py 에 추가

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField( )
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    
    def __str__(self):    #Article Class에서 해당 함수를 쓰기 위해서 같은 위치에 있어야함
        return str(self.title) #class안에 있는 함수를 메소드라고 호칭한다. 헷갈리지 않기위해서 
#언더바2개 (__)쓰고 사용하는 함수를 매직 메소드라고 칭한다.

__str__을 이용하여 짜잔! 이제 admin 페이지에도 타이틀로 보인다

 

우리가 만들어둔 이 article을 조회할 수 있는 API를 만들어보자