2019.05.04 인스타그램 클론 코딩하기(앱 및 모델 만들기)
인스타그램 만들기(1~2)
구현 로직
- 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에 팔로우 기능 추가하기
이번 시간에 할 것(1~2)
- photo 앱 만들기
- 모델 설계하기
- 초기 설정 및 프로젝트 시작은 bookmark 만들기를 참고해주세요 :)
1. photo 앱 만들기
프로젝트 시작 준비하기
가상 환경 만들기
- pip3 install virtualenv
- virtualenv -python = python3.7 venv
- venv라는 가상환경 생성
가상 환경 실행하기
- source venv/bin/activate
- 해당 터미널에 venv ) 표시 확인
장고 설치하기
- pip install django==2.2
- 원하는 버전의 장고 설치
- 가상환경이므로 더 이상 pip3를 해줄 필요 없음
프로젝트 생성하기
- django-admin startproject config .
- config는 프로젝트명 뒤에 .은 해당 디렉토리에 생성
- config내에 setting 및 url.py 등 관련 내용 생성
데이터베이스 migrate해주기
- 생성된 프로젝트에 대한 데이터베이스 초기화
- python manage.py migrate
photo 앱 만들기
- python manage.py startapp photo
- settings.py에 installed app에 photo 추가해주기
photo model 설계하기
- 해당 photo의 models.py로 이동
- author/ text/ imange/ created/ updated 구현
- __str__ 을 통해 admin 사이트 화면 표시 구현
- class Meta를 통해 ordering 정렬
- 장고에서 구현해주고 있는 user를 불러와서 photo를 foreignkey로 연결해줌
- upload_to=”timeline_photo/Y/m/d”
- timeline_photo폴더에 연도, 월, 일을 만들어서 사진을 저장
- media 폴더를 생성하여 그 아래에 지속적으로 저장되도록 구현
- setting의 값 설정
- MEDIA_URL 을 설정하고 ROOT를 잡아주어서 저기로 사진이 저장되도록 한다.
모델 설계 이후 migrations 해주기
- Image파일을 업로드 하기 위해 pip install Pillow를 해줘야 한다.
- pip install Pillow
- python manage.py makemigrations photo
- python manage.py migrate
admin 사이트에 등록하기
- admin.py로 이동
- from .models import Photo
- admin.site.register(Photo)
admin 사이트에서 확인해보기
- 관리자 계정 만들기
- python manage.py createsuperuser
- python manage.py runserver 8000
- 해당 링크의 /admin으로 이동하여 글 등록해보기
- 포토 몇개 등록해보기
- media 폴더에 잘 저장되는지 확인해보기