Byeonguk Kim

안녕하세요. 29살의 조금은 늦은 나이로 새롭게 개발자로 시작하는 신입 개발자입니다. 포트폴리오 [https://deaguowl.github.io]

Django 12. 인스타그램(7~8) - success_url 및 account 앱 구현하기

04 May 2019 » Django

2019.05.04 인스타그램 클론 코딩하기(success_url 및 account 앱 구현하기)

인스타그램 만들기(7~8)

구현 로직

  1. photo 앱 만들기
  2. 모델 설계하기
  3. views 설계하기
    1. list페이지
    2. 상세페이지
    3. 삭제하기
    4. 수정하기
    5. 생성페이지
  4. url 연결시켜주기
  5. template 만들기
    1. create/list/update/delete/detail
  6. 사진 화면에 업로드 할 수 있도록 만들기
  7. success url을 get_absolute_url로 연동시켜보기
  8. account 앱 만들기
    1. 로그인/로그아웃 기능 구현하기
    2. 템플릿에 로그인/로그아웃 보이도록 하기
    3. 로그아웃 되었을 때는 create 및 sign out가 안 보이도록 구현하기(분기)
  9. 권한 문제 해결하기
    1. html 기준에서 해결하기
    2. 링크로 들어와도 안 되도록 해결해보기
      1. view를 조정하기
  10. 댓글 기능 구현하기
    1. 댓글은 상세페이지에서 가능하도록 하기
    2. 소셜 댓글기능으로 구현하기
  11. 좋아요 버튼 만들기
    1. 스프라이트 이미지 기법 활용하기
    2. 클릭하면 색깔 바뀌도록 구현하기
    3. 로그인을 해야지 버튼 클릭이 되도록 하고 클릭을 하면 like count 올라가기
    4. like에 대한 정보를 저장하기
    5. 좋아요 counting 표시해주기
    6. 디테일 페이지에서 좋아요를 누르면 디테일 페이지에서 그대로 유지하도록 하기
      1. view와 like에서의 분기
      2. 레퍼러를 활용하여 해당 주소가 어디서부터 시작됬는지 확인한다.
  12. 좋아요한 포스팅만 보기 기능 구현하기
  13. 포스팅 저장하기 기능 구현하기
  14. 저장한 포스팅 리스트 페이지 구현하기
  15. 좋아요한 포스팅 및 저장한 포스팅 리스트 보기는 로그인한 사람만 보여주기
    1. view단에서 시행
      1. dispatch 활용
      2. LoginRequiredmixin
    2. html 활용
  16. my page에 내가 올린 사진들만 나오도록 구현한다.
  17. my page에 팔로우 기능 추가하기

이번 시간에 할 것(7 ~ 8)

  • success url을 get_absolute_url 로 연동시켜보기
  • account 앱 만들기
    • 로그인/ 로그아웃 기능 구현하기
    • 템플릿에 로그인/ 로그아웃 보이도록 하기
    • 로그아웃 되었을 때는 create 및 로그아웃이 안 보이도록 구현하기 (분기)

1. success url을 get_absolute_url로 연동시켜보기

  1. models.py에 absolute url 입력해주기
  2. 상세페이지로 이동하도록 absolute_url 설정 (나중에 사용)

스크린샷 2019-05-04 오후 8 22 36

  • 이후에 views에서 return super가 나오게 되면 자동적으로 absolute_url 이 실행

2. account 앱 만들기

  1. python manage.py startapp accounts
  2. setting.py에 install_app에 accounts 추가
    1. 추가해주지 않으면 템플릿 및 models을 찾을 수가 없다.

로그인, 로그아웃 기능 만들기

  1. 장고에서는 기본적으로 로그인, 로그아웃 기능을 지원
  2. 전체적인 그림
    1. urls.py를 만들어서 loginview와 logoutview를 바로 login.html과 logout.html로 전달
      1. templates에 login.html과 logout.html 구현
    2. models.py와 views.py를 거치지 않고 바로 구현 가능
    3. 로그인 성공했을시 접속할 링크 구현
  3. urls.py로 바로 url 연결시켜주기

2차 urls.py 구현하기

스크린샷 2019-05-04 오후 8 56 30

  • 장고에서 지원하는 loginview와 logoutview를 활용하여 바로 login.html과 logout.html로 연결시켜줌
  • 1차 url 연결
    • 메인 urls.py에 path(‘accounts/’, include(‘accounts.urls’)) 추가

템플릿 구현하기

  1. login.html

스크린샷 2019-05-04 오후 8 58 21

  1. logout.html

스크린샷 2019-05-04 오후 8 58 50

  • 로그인 성공 이후에 아래에 로그인 다시 할 수 있도록 링크 설정

로그인 성공했을 시 접속할 링크 구현해주기

  1. setting.py에 추가
LOGIN_REDIRECT_URL ='/' 

확인하기

  1. runserver하여 /accounts/login 및 /accounts/logout 들어가보기

템플릿에 로그인 / 로그아웃 보이도록 하기

  1. base.html의 navbar를 추가하여 로그인 / 로그아웃 구현
  2. url 링크 연동

스크린샷 2019-05-04 오후 9 04 39

로그인 했을 때만 사진 업로드 및 logout 보이게 하기 (분기)

  • { if user.is_authenticated }
  • { else }
  • { endif }
  • 활용 하여 구현

스크린샷 2019-05-04 오후 9 09 22

  • 로그인이 되어 있다면 사진 올리기와 logout 을 보여주고
  • 그렇지 않다면 login을 보여줘라