[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 12 회차 미션

2020. 11. 13. 10:47Coding/Python-Fastcampus

728x90

05. 게시판 - 03. 게시판 만들기 - 3 - 예외처리

존재하지 않는 계정으로 로그인을 시도한 경우.

 


로그인 예외처리.

Fcuser의 forms.py

try: ~ except: 를 이용한다.
except의 DoesNotExist는 위에 에러페이지의 타이틀로 적혀있는 에러임을 알 수 있다.

self.add_error()를 이용해서 username에 "ID가 없습니다."라는 메시지를 넘기고,
return을 해줌으로서 하단의 비밀번호 체크를 할 필요가 없다.

 

 

 


게시글 예외처리.

board의 views.py

앞의 로그인 예외처리처럼, try: ~ except:를 이용하고,
django에서 지원하는 raise Http404()기능을 사용한다.

사용자가 url을 통해 없는 게시글 번호로 접속을 요청하는 경우 해당 페이지가 출력된다.

 


게시글 작성 페이지에서 사용자 확인.

게시글 작성 페이지를 불러오기 전에
request.session.get('user')로 session에 user가 있는지(로그인이 되어있는지)를 확인한다.

 

 


05. 게시판 - 04. 게시판 만들기 - 4

페이징.

views.py
board_list.html의 목록과 글쓰기 버튼 사이에 넣으면된다.

핵심은 
from django.core.paginator import Paginator
이 기능을 이용해서 한페이지에 보여줄 게시글의 숫자를 정하고, 
boards안에 페이지 관련 정보들이 다 들어있기 때문에 랜더링한때 보낸 boards를 html에서 활용하여 페이지 번호도 만들 수 있다.

html부분에서는
{% if boards.has_previous %} 부분을 <a>태그가 아닌 <li>태그를 감싸줘야 정상작동을 하고,
위에 설명한것처럼 boards안에 페이지 정보가 들어있기 때문에
이전 페이지가 있는지
{% if boards.has_previous %}
남은 페이지가 있는지
{% if boards.has_next %}
현재 몇 페이지에 있는지
{{ boards.number }}
총 몇 페이지가 있는지
{{ boards.paginator.num_pages }}
등등을 알 수 있다.

 

{% if %} {% else %} {% endif %} 를 잘 활용해서, 기능을 끄거나 키고등의 상황에 맞는 동작을 할 수 있게 만드는게 중요하다.

 

 


04. 자료형 - 11. 데이터 타입 - 퀴즈 및 풀이(2)

역시나 알아두면 좋은 부분이나 까먹을꺼 같은것만 정리.

"Apple" 항목만 삭제.
q11 = ["Banana""Apple""Orange"]
q11.remove("Apple")
print(q11)

 

딕셔너리로 선언.
q13 = {"성인" : 100000 , "청소년" : 70000 , "아동" : 30000}

or

q13 = {}
q13['성인'] = 10000
q13['청소년'] = 70000
q13['아동'] = 30000

 

 


리스트 List

튜플 Tuple

집합 Set

딕셔너리 Dictionary

형변환 Casting

위 5가지는 기본적으로 알아야하고 자주 쓰이는 기능들이니 확실히 알아두어야한다.

 

 

 

올인원 패키지 : 파이썬 웹 개발👉https://bit.ly/33a7nvc

728x90