Django 기반 웹 개발(1)
단기간 안에 Django 기반 웹을 개발해보기로 했다.
주제는 요리 레시피 블로그로 정했다.
개발 1일차
1. 프로젝트 기획
개요
Django와 GraphQL로 구축된 레시피 관리 시스템
사용자는 레시피를 생성, 조회, 편집 및 삭제와 레시피 검색 가능
기능
- 사용자 인증: 사용자는 회원가입, 로그인 및 로그아웃하여 자신의 레시피를 관리할 수 있다.
- 레시피 CRUD 작업: 사용자는 레시피를 생성, 조회, 편집 및 삭제할 수 있다.
- 태깅: 레시피에 카테고리를 추가하여 조직 및 필터링이 쉽도록 한다.
- 평가 시스템: 사용자는 1에서 5까지의 별점으로 레시피를 평가할 수 있다.
- 검색 기능: 사용자는 제목, 재료 또는 태그를 기준으로 레시피를 검색할 수 있다.
ER 다이어그램
2. 개발
2.1. 환경 설정
git 생성
1
git init
가상 환경 생성
1
python -m venv venv
Django 프로젝트 생성
1
django-admin startproject website
Django app 생성
1
python manage.py startapp recipes
2.2. 구현
- Django 모델 생성
- URL 설정
- HTML 생성
- CSS 생성
- Header, Footer 생성
- 로그인, 로그아웃 기능 구현
- 레시피 CRUD 기능 구현
- 로그인 되었을 때, 레시피 생성 가능
- 로그인된 계정이 작성한 레시피만 편집 및 제거 가능
- 테이블 형식에 재료 입력, 행 추가 및 제거 가능
- GraphQL 시작
- 모든 레시피 조회, 모든 재료 조회하는 Query 생성
- URL 설정
settings.py
설정
2.3. 에러 해결
- 커스텀 User 사용 에러 해결
auth.User.groups: (fields.E304) Reverse accessor ‘Group.user_set’ for ‘auth.User.groups’ clashes with reverse accessor for ‘recipes.User.groups’.
3. 결과
4. TODO
- 전체 레시피 조회
- 레시피 검색
- 레시피 태그
- 로그인 안 되어있을 때, 레시피 생성 버튼 클릭시 로그인 화면으로 전환
- 이미지 등록 안된 레시피에 default 이미지 적용
- 스타일
Next: Django 기반 웹 개발(2)
This post is licensed under CC BY 4.0 by the author.