Django는 웹 프레임워크 자체에서 DB를 관리할 수 있다는 장점이있다. 파이썬 만으로도 CRUD 기능을 구현할 수 있지만 이번 블로그 프로젝트가 끝나면 Mysql로 교체해 보는 시도를 할 것이다.
Post 모델 제작, 반영하기
Post는 제목, 내용, 작성일자, 작성자 정보가 필요하다 따라서 blog 폴더의 models.py 파일에 다음과 같이 입력하여 Post 모델을 제작한다.
여기서 Post 모델은 models 모듈의 Model 클래스를 확장해서 만든 클래스로 title 필드는 CharField 클래스에 최대 30자 제한을 주고 content 필드는 TextField, created_at은 models.DateTimeField 클래스를 사용한다. DateTimeField는 월,일,시,분,초 까지 기록할 수 있게 해주는 필드를 만들 때 사용한다.
그 다음으로 settings.py에 blog와 single_pages 앱을 등록한다.
DB에 Post 모델을 등록하기 위해서는 cmber 터미널에 python manamge.py makemigrations 명령어를 입력하면 blog/migration 에 0001_initial.py 파일이 생성되는데 버전 관리를 하지 않을 것 이므로 migrations 폴더를 .gitignore에 추가하도록 한다. 마무리로 python manage.py migrate를 입력한다.
blog 폴더의 admin.py 파일에 다음의 코드를 입력하여 Post 모델을 추가한다.
그 후 관리자 페이지에서 Post 기능을 사용 할 수 있게된다.
__str__() 함수로 포스트 제목과 번호 나타내기
함수 사용 전
__str__(self) 함수 입력 후
이렇게 자동적으로 부여된 PK(primary key) 에 의해 1, 2 와 같이 번호가 매겨지고 정렬되었음을 알 수 있다. 또한 self.title에 의해 글 제목을 파악하기 쉽게 post 페이지 에서 입력했던 제목이 출력되고 있다.
서울 시간대로 설정하기
자주 등장하는 settings.py를 열고 다음과 같이 수정하면 작성 시간이 서울 기준으로 바뀌어 있다.
자동으로 작성, 수정시간 저장
지금 하고 있는 티스토리 블로그 같은 경우 글 작성 후 완료를 누르면 자동으로 클릭한 시점의 시간이 작성 시간이 되고 수정 한 후 완료 버튼을 누르면 그 시간이 수정시간으로 자동으로 설정해준다. 이 기능을 구현해 보자면 다음과 같다.
수정 사항이 발생했으니 migration 한 후 관리자 페이지로 확인하면 다음과 같이 create_at 이 없어지고 자동으로 작성시간, 수정시간을 설정해 주는것을 알 수 있다.
'Backend > Django + Bootstrap 개발 일지' 카테고리의 다른 글
9. CBV로 페이지 제작 (0) | 2022.07.12 |
---|---|
8. URL설정, FBV 페이지 만들기 (0) | 2022.07.12 |
6. App 개발 (블로그, 페이지) (0) | 2022.07.11 |
5. Django로 웹 사이트를 만들기 위한 기초적인 구성(프로젝트, DB 생성) (0) | 2022.07.11 |
4. Pycharm으로 가상환경 설정, 외부 라이브러리 설치 (0) | 2022.07.08 |