[Django] 04. 장고 모델

hhanoo·2023년 2월 17일

Django

목록 보기
4/5

장고는 DB를 사용할 수 있도록 지원한다.
SQLite라는 DB를 사용하는데 대규모작업에는 적합하지 않지만 대규모 규모가 아니라면 충분히 사용가능한 가볍게 설계된 DB이다.


1. Django Model

1-1. model.py에서 모델 작성하기

저는 테스트용으로 버스 위치를 알려주는 페이지를 만들기위해 버스번호, 위치, 업데이트 시간을 모델로 넣었다.

모델을 만들었기 때문에 모델 업데이트를 위해 반드시 마이그레이션을 해줘야한다.

1-2. makemigrations 명령어 실행

모델을 변경 혹은 신규 작성했다는 사실과 이 사항을 migration으로 저장시키기 위해 명령어를 실행해야 한다.

python manage.py makemigrations [App 이름]

정상적으로 새로운 모델이 생성된것을 터미널 결과를 통해 알 수 있다!

1-3. migrate 명령어 실행

이전 게시글에서도 반복했던 migrate 명령어를 실행을 통해 모델의 변경 사항과 데이터 베이스의 스키마를 동기화 시키자.

python manage.py migrate

마이그레이션이 정상적으로 실행된 것을 볼 수 있다.

1-4. admin.py에 추가하기.

이렇게 만들어진 모델을 관리지가 관리 할 수 있도록 admin.py에 정보를 추가해주는 과정이 필요하다.

이렇게 코드를 추가하면 쉘에서 수행하는 데이터 저장, 수정, 삭제 등의 작업을 장고 admin 페이지에서 처리 할 수 있게된다.

관리자 페이지에 Bus 모델 정보가 추가된 것을 볼 수 있다.


2. 모델 관리하기

2-1. 데이터 추가하기

이렇게 만들어진 모델은 관리자 계정을 통해 관리할 수 있게된다.

+Add를 클릭하면 모델에서 만들었던 형태의 list를 볼 수 있다.

  • Save : 해당 유형의 객체에 대한 변경사항을 저장하고, 변경된 목록 페이지를 보여준다.
  • Save and another : 변경사항을 저장하고, 해당 유형의 객체에 대한 비어있는 새로운 입력창을 보여준다.
  • Save and continue editing : 해당 객체에 대한 변경사항을 저장하고, 현재 편집창을 갱신한다.

정보를 저장하면 위 페이지처럼 데이터가 추가된것을 확인 할 수 있다.

2-2. 데이터 가독성 높이기

Bus object (1) 형태로 데이터가 저장된 것을 볼 수 있다. 이렇게 보여지는 형식을 버스 번호만 보이도록 변경 할 수 있다.

이렇게 models.py파일을 수정하면 버스 번호만 보이도록 변경 할 수 있다.

앞에 불필요하게 붙어있던 Bus object가 사라지고 버스의 번호만 출력되는 것을 볼 수 있다.

2-3. 데이터 검색기능 추가하기

데이터에 검색 기능을 추가하고 싶다면 admin.py에 검색기능 코드를 추가하여 구현할 수 있다.

search_fields를 버스번호로 추가하여, 검색하면 버스 번호를 검색 할 수 있도록 하였다.

0개의 댓글