- 프로젝트 소개
Github 협업으로 멀티캠퍼스 선물 리뷰 게시판 구현
- 깃 설정, 장고 개발 환경 설정, 회원 가입, 데이터모델링 : 변규탁
- 로그인, 회원 목록 조회, 회원 정보 수정, 로그아웃, 네비게이션 바, 리뷰목록 : 조병진
- 리뷰 생성, 목록 조회, 정보 수정, 삭제 : 노은빈
- CRUD 구현
- Staticfiles 활용 정적 파일(이미지, CSS, JS) 다루기
- Django Auth 활용 회원 관리(회원 가입 / 회원 조회 / 로그인 / 로그아웃)
- 멀티캠퍼스에서 격려차원에서 과자와 레고를 보내었는데, 선물 리뷰를 위한 페이지를 만들었다.
접기/펼치기
### 1.1 회원 관리- 회원 가입 창 및 로그인/ 로그아웃
- 회원 정보 수정
- 회원 정보 삭제(탈퇴)
- 선물 리뷰 생성, 조회, 삭제, 수정 기능
- 별점을 이용한 평점 기능
- 회원 가입 후 로그인, 로그아웃 기능
- 회원 목록 페이지
- 회원 정보 수정
- 회원 탈퇴 기능
- 게시판 글 생성, 목록, 수정, 삭제 기능
- 로그인 한 상태에서 본인의 글만 수정 및 삭제 가능
- 글쓰기 할 때 사진 첨부 기능
각각의 기능을 넣을 때마다 branch를 바꿔서 하기
- [local/driver] master branch에서 개발 토픽에 해당하는 branch 생성 및 branch 전환
$ git checkout -b [토픽 브랜치명]- [local/driver] 토픽 개발
- [local/driver] 토픽 개발 후 동일한 이름의 원격 저장소 branch에 Commit&Push
$ git add .
$ git commit -m '커밋 메세지'
$ git push origin [토픽 브랜치명]- [local/driver] 토픽 branch 병합(github 에서)
- [local/driver] master branch 전환 후 Pull
# main 브랜치로 전환
$ git checkout main
# main 브랜치 Pull
$ git pull origin main- [local/driver] 토픽 branch 삭제
# 토픽 브랜치 삭제
$ git branch -d [토픽 브랜치명]- driver 변경 후 새 branch를 만들어서 다시 시작
# 브랜치 생성 & 전환
git checkout -b [브랜치명]
# 브랜치 전환
git checkout [브랜치명]
# 브랜치 삭제
git branch -d [브랜치명]
# 브랜치 이름 변경
git branch -m [기존 브랜치명] [변경할 브랜치명]- 원격 저장소 생성
- collaborator 초대
# branch master에서
# 로컬 저장소 git 초기화
$ git init
# 로컬 저장소 .gitignore 생성
$ touch .gitigngit ore-
gitignore 작성
# venv 생성
$ python -m venv venv
# venv 실행(Scripts 파일 있는 곳에서)
$ source venv/Scripts/activate
(venv)# Django 설치
$ pip install django==3.2.13
# Bootstrap5 설치
$ pip install django-bootstrap5
# 패키지 목록 저장
$ pip freeze > requirements.txt
# Django 프로젝트 생성
$ django-admin startproject config .branch accounts/signup
app_name = 'accounts'
모델 이름 : User
- Django AbstractUser 모델 상속
-
Django 내장 회원 가입 폼 UserCreationForm을 상속 받아서 CustomUserCreationForm 작성
해당 폼은 아래 필드만 출력
- username
- password1
- password2
회원 가입
-
CustomUserCreationForm을 활용해서 회원 가입 구현
회원 가입 페이지
-
회원 가입 폼
branch accounts/login
- Django 내장 로그인 폼 AuthenticationForm 활용
로그인
-
AuthenticationForm를 활용해서 로그인 구현
로그인 페이지
-
로그인 폼
-
회원 가입 페이지 이동 버튼
branch accounts/index
회원 목록 조회
회원 목록 페이지
-
회원 목록 출력
-
회원 아이디를 클릭하면 해당 회원 조회 페이지로 이동
branch accounts/detail
회원 정보 조회
회원 조회 페이지(프로필 페이지)
branch accounts/update
회원 정보 수정
-
Django 내장 회원 수정 폼 UserChangeForm을 상속 받아서 CustomUserChangeForm 작성
해당 폼은 아래 필드만 출력합니다.
- first_name
- last_name
회원 정보 수정
회원 정보 수정 페이지
branch accounts/logout
로그아웃
branch template/navbar
네비게이션바
- 리뷰 목록 페이지 이동 버튼
- 리뷰 작성 페이지 이동 버튼
- 비 로그인 유저는 작성 버튼 출력 X
- 로그인 상태에 따라 다른 화면 출력
- 로그인 상태
- 로그인 한 사용자의
username출력username을 클릭하면 회원 조회 페이지로 이동
- 로그아웃 버튼
- 로그인 한 사용자의
- 비 로그인 상태
- 로그인 페이지 이동 버튼
- 회원가입 페이지 이동 버튼
- 로그인 상태
branch reviews/create
app_name = ' reviews'
모델 이름 : Review
-
모델 필드
이름 역할 필드 속성 title 리뷰 제목 content 리뷰 내용 movie_name 영화 이름 grade 영화 평점 created_at 리뷰 생성시간 DateTime auto_now_add=True updated_at 리뷰 수정시간 DateTime auto_now = True
데이터 생성
리뷰 작성 페이지
GEThttp://127.0.0.1:8000/reviews/create/- 리뷰 작성 폼
branch reviews/index
데이터 목록 조회
리뷰 목록 페이지
GEThttp://127.0.0.1:8000/reviews/- 리뷰 목록 출력
- 제목을 클릭하면 해당 리뷰의 정보 페이지로 이동
branch reviews/detail
데이터 정보 조회
리뷰 정보 페이지
GEThttp://127.0.0.1:8000/reviews/[int:review_pk](int:review_pk)/- 해당 리뷰 정보 출력
- 수정 / 삭제 버튼
branch reviews/update
데이터 수정
리뷰 수정 페이지
branch reviews/delete
데이터 삭제
1. 메인 화면에서 '리뷰쓰기' 누르면 '로그인' 창으로 넘어감
2. '로그인', '회원가입' 버튼 선택 가능
3. '로그인' 시 리뷰 작성 가능
1. 이름, 비밀번호, 비밀번호 확인 작성 폼
2. 'save' 누르면 회원가입 완료
회원가입 후 로그인 성공하면 회원 이름의 표기와 함께 로그아웃 버튼 생성된 페이지로 이동
1. '리뷰 쓰기' 누르면 작성 페이지로 넘어감
2. 제목, 내용, 평점, 사진으로 구성// 수정, 삭제, 목록으로 버튼
3. 저장 시 제목, 평점, 사진, 내용 출력
'목록으로 이동' 누르면 리뷰 목록 페이지로 넘어감
'로그아웃'을 누르면 '메인' 페이지로 넘어옴
- decorator를 이용한 login 유효성 검사를 하였다.(Mixin 기능과 어떻게 다른지 찾아보기)
- 미디어 파일을 통해 유저가 실제로 올릴 수 있도록 하였다.
- 기존 Review모델에 imagefield를 추가하고 media파일 경로(settings에서 지정)하는 법을 배웠다.
- 배포까지 하려고 했으나 오류에 막혀 실패하였다. (heroku, pythonanywhere PAAS 이해하기)
- 맥과 윈도우의 기본 폰트 차이로인해 같은 CSS설정이라도 약간의 마진부분이 차이가 났다.
- 쿠키를 지우지 않아 로컬서버에서 새로고침을 하여도 내용이 바뀌지 않는 것을 알았다.
- 짧은시간이지만 디자인과 설계부분에서 유저입장에서 어떻게 서비스를 이용하게 될 것인지 정한 점이 좋았다.

