Django
model & admin / migration
Like A Flowing Cloud
2021. 6. 14. 00:21
- model = django 가 데이터베이스를 관리하게끔 해준다.
- admin = 이런 model을 관리하는 역할
■ 원하는 데이터 등록
- blog 앱 안에 있는 models.py 로 가서 처리하고 싶은 데이터의 종류를 적어준다
- ( python의 class 개념 이용. why? models.py에 class로 데이터를 등록하고, 각 포스팅은 이 class의 인스턴스가 된다고 생각. )
- 통상적으로 models.py 에서 class 이름은 맨 앞을 대문자로 표기
- 인자로 models.Model 을 받게 됨.
class Blog(models.Model):
이를 통해서 models은 Blog가 장고 모델임을 알게 됨.
이 때문에 데이터베이스에 저장 할 수 ㅇ. - models의 field들이 나온다. (title->CharField / pub_date->DateField / body->TextField)
■ django 와 데이터 베이스를 연동시키기
- settings.py에 데이터베이스에 관한 설정 ㅇ.
- django는 데이터 베이스 초기값으로 sqlite3를 사용.
python manage.py makemigrations
→ 연동시키기 위해서 terminal에서 등록
→ blog 앱 밑에 migrations 이라는 폴더를 생성하여 django와 데이터베이스가 서로 소통할 수 있게 해준다.
python manage.py migrate
→ 데이터베이스에 최신 models 를 적용시키는 명령어.
■ admin 계정 만들기
- terminal 에서 user를 생성하는 명령어는
python manage.py createsuperuser
- admin에 models를 등록하기
<admins.py>
from .models import Blog
admin.site.register(Blog)
- __str__ 함수 사용 : 우리가 원하는 모양으로 바꿔줄 수 ㅇ
def __str__(self):
return self.title