1. Models.py에 Post class를 생성해준다.
- Title : 타이틀에 속성을 정해준다.
- Content : 컨텐츠의 속성
- Date_posted : DateTimeField(default.now)는 장고 유틸리티에서 timezone을 import해서 사용한다.
- on _delete=models.CASCADE = 유저가 포스트를 삭제하면 포스트가 삭제 된다.
*포스트 모델과 유저모델은 서로 연관되어있다. 유저는 하나지만 여러포스트를 가질 수 있다. 이렇게 하기 위해서 Foreignkey(User)를 사용한다
*User를 사용하기 위해 아래와 같이 import해준다.
2. 변경한 Models를 저장하기 위해 아래와 같이 입력해준다.
-Models을 수정한 후에는 makemigrations를 무조건 실행해 줘야한다.
3. 위에서 makemigrations으로 저장한 파일들은 아래와같이 저장된다.
-0001_initial.py파일로 들어가보면 어떤변경 사항이 저장되었는지 확인 할 수 있다.
4. 커맨드라인에서 또한 SQLite명령어를 사용하여 변경사항을 확인 할 수 있다.
5. Migrate 명령어를 사용하여 저장상태를 확인할 수 있다.
-migration은 굉장히 유용하다. Migration는 데이터베이스를 수정하는것을 허용한다. 심지어 생성하거나 기존의 데이터를 변경 할 때도. 복잡한 SQL코드를 직접 수정하지 않아도 run migration으로 모든걸 변경 할 수 있다.
6. Shell을 이용하면 데이터와 상호작용할 수 있다.
-아래 명령어로 shell에 접속
-blog 앱에 모델을 import해준다.
-user을 import해준다.
-아래 명령어로 query set을 볼 수 있다.
-첫 유저 확인
-filter명령어로 이름으로 찾을 수 있다.
-아래 검색어로 첫번째 유저를 검색 가능
-user로 첫번째 유저로 캡쳐/등록하기
-ID, pk로 결과값을 불러올 수 있다.
-user : 유저아이디를 확인
-post : 등록된 포스트를 확인
-포스트 생성하기
-포스트 저장하기
-Post.objects.all() 명령어로 포스트 확인하기
-django_project.models.py에서 __str__메소드를 추가해준다.
-exit() 명령어로 shell에서 빠져나와준다.
-다시 shell에 접속해준다. 이제 reimport되어 위에 models.py파일이 수정되었다.
-처음 shell을 실행했을때와 똑같이 Post / User를 import해준다.
-아래 명령어로 POST를 확인해 준다.
-Username을 user로 변경해 준다.
-post_2를 생성하고 save 명령어로 저장해준다.
그리고 post.objects.all()명령어로 확인해 준다.
-포스트 내용 확인하기
-포스트 등록날짜 확인하기
-저자 확인하기
-저자 이메일 확인하기
-유저가 생성한 모든 포스트 보기
-포스트 바로 생성하기
-exit() 명령어로 빠져나오기
7. blog.views.py에 dummy데이터를 방금 데이터베이스에 등록한 POST로 바꿔주자
-models에 있는 post를 import해준다.
-기존 dummy데이터를 통하던 context를 데이터를 불러오도록 재설정 해준다.
8. python manage.py runserver 서버를 실행시켜 변경된 POST를 확인해 준다.
9. 포스터에 년도,날짜,시간 등을 간편하게 변경시켜보자
-blog/template/blog/home.html로 이동해준다.
-년도,날짜,시간을 표시하는 코드를 찾는다.
-아래와 같이 변경해준다.
-blog.views.py에 dummy데이터를 삭제해준다.
10. 현재 페이지에서는 post가 없다. 추가 해주기 위해서 admin.py에 models을 추가해줘야 한다.
-blog.admin.py 파일에서 아래와같이 추가해준다.
-admin page에서 post가 생성된걸 확인할 수있다. 생성/삭제/업데이트도 가능하다.
GitHub : https://github.com/bellcastle88/Django-Website-Projectc
'Back-end > Django' 카테고리의 다른 글
Django Blog 만들기 - Part 6 : 유저 등록 (0) | 2020.08.31 |
---|---|
Django에서 날씨 앱 만드는 방법 (0) | 2020.08.31 |
Django Blog 만들기 - Part 4 : Admin 페이지 (0) | 2020.08.23 |
Django Blog 만들기 - part 3 : 템플릿 (0) | 2020.08.21 |
Django Blog 만들기 - part 2 : 어플리케이션과 라우트 (0) | 2020.08.20 |