220207 TIL
TIL DAY 172
오늘 배운 일
✔️ Django 웹 개발
1. 아직 저장된 데이터가 없다면?
만약에 데이터베이스에 작성된 글이 하나도 없을 때는 어떻게 해야 될까?
우리는 데이터베이스에 글이 없다고 가정하기 위해 먼저 모든 글을 지워주도록 해준다.
모든 데이터를 삭제하기 위해 우리가 할 수 있는 방법은 두 가지인데
- 첫 번째 방법인 관리자 페이지로 가서 모든 글을 삭제하는 방법
서버를 실행해서 밑에 있는 링크로 들어가준다.
다음에 로그인을 해주고 그리고 나서 Posts 로 들어가준다.
그리고 이렇게 모든 게시글을 선택해주고...
Action 옆에 Delete 로 맞춰서 Go 를 누르면 삭제가 된다.
- 또 다른 방법으로는 django 의 ORM 을 이용해서 한 번에 지우는 방법이 있다.
이 방법을 한번 해보겠다.
우선 서버를 끄고 새로운 터미널을 생성해서 다음과 같이 커맨드를 실행시켜준다.
python3 manage.py shell
이렇게 해서 django 의 셀을 켜주고 다음에 우리가 사용할 Post 모델을 가져와본다.
그리고 다음과 같이 커맨드를 따라서 작성해준다.
그리고 모든 포스트를 가져올려면 밑에 커맨드를 참고해준다.
그러면 현재 우리가 갖고 있는 게시글 세 개가 잘 나온다.
그러면 이 모든 글을 삭제해보겠다.
all 끝에다가 delete 을 해주면 삭제가 다 됐고 다시 게시글 목록을 보면...
게시글이 다 삭제돼서 아무것도 없는 것을 확인할 수 있다.
자 그러면 다시 개발 서버를 켜고 메인 페이지로 들어가 본다.
쉘에서 나갈려면 exit() 을 해준다.
메인 페이지로 이동하면 이렇게 아무런 글이 표시되지 않고 있다.
사실 이 상태가 에러가 난 것은 아니고 정상적인 동작을 한 것이지만 유저가 이 화면을 보았을 때 뭔가 이상하다고 느끼거나 친절하지 않다고 생각할 수 있다.
이렇게 글이 없을 때는 작성된 글이 없으니까 '첫 글을 작성해보는 건 어떨까요' 같은 문구가 화면에 보이는게 유저 경험 측면에서 더 좋을 것 같다.
한번 구현해보자!
서버를 꺼주고 post_list 템플릿으로 가서 다음과 같이 코드를 작성해준다.
post_list.html
게시글이 있을 때는...
코드를 넣어주면 되는데 하이라이트 된 부분들이 기존의 게시글이 있을 때 전체 게시글을 보여주는 코드였다.
이것을 잘라내서 if 와 else 사이에 넣어준다.
그 다음에 게시글이 없을 때의 코드를 써줄 건데 게시글이 없을 때는 div 태그를 하나 만들어준다.
그리고 그 안에 p 태그를 만들어서 문구를 작성해준다.
다 끝났으니 한번 서버를 실행시켜서 확인해본다!
웹 페이지를 접속하면...
다음과 같이 문구가 잘 나타났다.
그리고 글쓰기를 해서 다음과 같이 작성해주고...
작성완료 버튼을 클릭해주면...
이런 식으로 게시글이 잘 보인다.
끝으로 :
- 이번에는 데이터베이스에 작성된 글이 없을 때 처리할 수 있는 방법에 대해 알아보았다.
- 우리가 지금까지 배운 내용 토대로 다양한 상황을 처리할 수 있다.
Author And Source
이 문제에 관하여(220207 TIL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@klucas/220207-TIL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)