2019.05.04 인스타그램 클론 코딩하기(views 및 url 연결하기)
인스타그램 만들기(3~4)
구현 로직
- 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에 팔로우 기능 추가하기
이번 시간에 할 것(3~4)
- views 설계하기
- URL 연결하기
views 설계하기
- class형 뷰의 generic view를 이용하여 구현
- ListView/CreateView/UpdateView/DeleteView/DetailView 구현
- Listview, Createview, deleteview,detailview,updateview 임포트 해오기
- PhotoList:
- 가장 메인에서 보여줄 로직
- 북마크 모델을 불러와서 데이터를 활용할 것이라고 기제
- PhotoCreate:
- 북마크 모델을 활용하는데
- 생성할 때 채워야 할 필드 확인
- 이후 연결될 템플릿 이름은 bookmark_create 일 것이다.
- 성공하면 메인 페이지로 돌아가도록 연결(이후 url로 연결)
- PhotoUpdate:
- Create와 마찬가지로 field가 꼭 필요하다
- 대부분 Create와 동일
- PhotoDelete와 PhotoDetail
- 삭제와 상세페이지는 특별한 로직이 필요하지 않음
- 템플릿과 연결을 잘 시킬 수 있도록 신경
URL 연결하기
2차 URL 연결하기
- photo의 urls.py 생성
- URL 작성하기
- app_name 설정을 통해 namespace(이름공간)확보
- 다른 앱들과 url pattern 이름이 겹치는 것을 방지하기 위해 사용한다.
- path(url pattern, view, url pattern name),
- 함수형 뷰는 이름만 적으면 되고 클래스형 뷰는 이름.as_view()
- name은 나중에 불러쓰기 위해 지정한다.
- url pattern
- <int:pk>
- 해당 작성에 대한 번호로 이동해야지 상세페이지 및 그 글에 대한 삭제, 수정을 할 수 있다.
- <int:pk>
- views 경로 지정
- 해당 url이 들어오면 views의 해당 view의 로직을 따라서 처리한다.
- name
- 네임 설정을 통해 이후 클릭하면 해당 url로 이동하도록 설정한다.
1차 URL 연결하기
- config의 url.py에 작성
- 2차 URL을 설정한 이후에 가장 기본이 되는 URL과 연결시켜준다.
- 기본적으로 admin 주소는 설정되어 있다.
- include를 통해서 해당 주소로 연결시켜준다.
- 가장 기본 주소가 들어오면 photo의 url로 연결시켜줘라.