2019.05.04 인스타그램 클론 코딩하기(success_url 및 account 앱 구현하기)
인스타그램 만들기(7~8)
구현 로직
- photo 앱 만들기
- 모델 설계하기
- views 설계하기
- list페이지
- 상세페이지
- 삭제하기
- 수정하기
- 생성페이지
- url 연결시켜주기
- template 만들기
- create/list/update/delete/detail
- 사진 화면에 업로드 할 수 있도록 만들기
- success url을 get_absolute_url로 연동시켜보기
- account 앱 만들기
- 로그인/로그아웃 기능 구현하기
- 템플릿에 로그인/로그아웃 보이도록 하기
- 로그아웃 되었을 때는 create 및 sign out가 안 보이도록 구현하기(분기)
- 권한 문제 해결하기
- html 기준에서 해결하기
- 링크로 들어와도 안 되도록 해결해보기
- view를 조정하기
- 댓글 기능 구현하기
- 댓글은 상세페이지에서 가능하도록 하기
- 소셜 댓글기능으로 구현하기
- 좋아요 버튼 만들기
- 스프라이트 이미지 기법 활용하기
- 클릭하면 색깔 바뀌도록 구현하기
- 로그인을 해야지 버튼 클릭이 되도록 하고 클릭을 하면 like count 올라가기
- like에 대한 정보를 저장하기
- 좋아요 counting 표시해주기
- 디테일 페이지에서 좋아요를 누르면 디테일 페이지에서 그대로 유지하도록 하기
- view와 like에서의 분기
- 레퍼러를 활용하여 해당 주소가 어디서부터 시작됬는지 확인한다.
- 좋아요한 포스팅만 보기 기능 구현하기
- 포스팅 저장하기 기능 구현하기
- 저장한 포스팅 리스트 페이지 구현하기
- 좋아요한 포스팅 및 저장한 포스팅 리스트 보기는 로그인한 사람만 보여주기
- view단에서 시행
- dispatch 활용
- LoginRequiredmixin
- html 활용
- view단에서 시행
- my page에 내가 올린 사진들만 나오도록 구현한다.
- my page에 팔로우 기능 추가하기
이번 시간에 할 것(7 ~ 8)
- success url을 get_absolute_url 로 연동시켜보기
- account 앱 만들기
- 로그인/ 로그아웃 기능 구현하기
- 템플릿에 로그인/ 로그아웃 보이도록 하기
- 로그아웃 되었을 때는 create 및 로그아웃이 안 보이도록 구현하기 (분기)
1. success url을 get_absolute_url로 연동시켜보기
- models.py에 absolute url 입력해주기
- 상세페이지로 이동하도록 absolute_url 설정 (나중에 사용)
- 이후에 views에서 return super가 나오게 되면 자동적으로 absolute_url 이 실행
2. account 앱 만들기
- python manage.py startapp accounts
- setting.py에 install_app에 accounts 추가
- 추가해주지 않으면 템플릿 및 models을 찾을 수가 없다.
로그인, 로그아웃 기능 만들기
- 장고에서는 기본적으로 로그인, 로그아웃 기능을 지원
- 전체적인 그림
- urls.py를 만들어서 loginview와 logoutview를 바로 login.html과 logout.html로 전달
- templates에 login.html과 logout.html 구현
- models.py와 views.py를 거치지 않고 바로 구현 가능
- 로그인 성공했을시 접속할 링크 구현
- urls.py를 만들어서 loginview와 logoutview를 바로 login.html과 logout.html로 전달
- urls.py로 바로 url 연결시켜주기
2차 urls.py 구현하기
- 장고에서 지원하는 loginview와 logoutview를 활용하여 바로 login.html과 logout.html로 연결시켜줌
- 1차 url 연결
- 메인 urls.py에 path(‘accounts/’, include(‘accounts.urls’)) 추가
템플릿 구현하기
- login.html
- logout.html
- 로그인 성공 이후에 아래에 로그인 다시 할 수 있도록 링크 설정
로그인 성공했을 시 접속할 링크 구현해주기
- setting.py에 추가
LOGIN_REDIRECT_URL ='/'
확인하기
- runserver하여 /accounts/login 및 /accounts/logout 들어가보기
템플릿에 로그인 / 로그아웃 보이도록 하기
- base.html의 navbar를 추가하여 로그인 / 로그아웃 구현
- url 링크 연동
로그인 했을 때만 사진 업로드 및 logout 보이게 하기 (분기)
- { if user.is_authenticated }
- { else }
- { endif }
- 활용 하여 구현
- 로그인이 되어 있다면 사진 올리기와 logout 을 보여주고
- 그렇지 않다면 login을 보여줘라