Post

Django 기반 웹 개발(1)

단기간 안에 Django 기반 웹을 개발해보기로 했다.
주제는 요리 레시피 블로그로 정했다.

개발 1일차

1. 프로젝트 기획

개요

Django와 GraphQL로 구축된 레시피 관리 시스템
사용자는 레시피를 생성, 조회, 편집 및 삭제와 레시피 검색 가능

기능

  • 사용자 인증: 사용자는 회원가입, 로그인 및 로그아웃하여 자신의 레시피를 관리할 수 있다.
  • 레시피 CRUD 작업: 사용자는 레시피를 생성, 조회, 편집 및 삭제할 수 있다.
  • 태깅: 레시피에 카테고리를 추가하여 조직 및 필터링이 쉽도록 한다.
  • 평가 시스템: 사용자는 1에서 5까지의 별점으로 레시피를 평가할 수 있다.
  • 검색 기능: 사용자는 제목, 재료 또는 태그를 기준으로 레시피를 검색할 수 있다.

ER 다이어그램

erd

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. 구현

  1. Django 모델 생성
  2. URL 설정
  3. HTML 생성
  4. CSS 생성
  5. Header, Footer 생성
  6. 로그인, 로그아웃 기능 구현
  7. 레시피 CRUD 기능 구현
    1. 로그인 되었을 때, 레시피 생성 가능
    2. 로그인된 계정이 작성한 레시피만 편집 및 제거 가능
    3. 테이블 형식에 재료 입력, 행 추가 및 제거 가능
  8. GraphQL 시작
    1. 모든 레시피 조회, 모든 재료 조회하는 Query 생성
    2. URL 설정
    3. settings.py 설정

2.3. 에러 해결

  1. 커스텀 User 사용 에러 해결

auth.User.groups: (fields.E304) Reverse accessor ‘Group.user_set’ for ‘auth.User.groups’ clashes with reverse accessor for ‘recipes.User.groups’.

3. 결과

1일차 홈페이지 홈페이지

create recipe 레시피 생성

ingredient_table_1 재료 입력

recipe detail 레시피 조회

1일차 코드

4. TODO

  • 전체 레시피 조회
  • 레시피 검색
  • 레시피 태그
  • 로그인 안 되어있을 때, 레시피 생성 버튼 클릭시 로그인 화면으로 전환
  • 이미지 등록 안된 레시피에 default 이미지 적용
  • 스타일

Next: Django 기반 웹 개발(2)

This post is licensed under CC BY 4.0 by the author.