Django

Django 프로젝트(1) - Hot🔥Deal Blog

UserDonghu 2023. 11. 8. 18:43

https://github.com/UserDongHu/Blog_Project

 

처음으로 해본 Django 프로젝트.

멘탈 깨진채로 끝까지 완성한 나 칭찬해..

다음에는 더 진심으로 프로젝트에 몰두하는걸로..


Django Blog Project - Hot🔥Deal Blog

  • 다양한 핫딜 정보를 게시할 수 있는 블로그 입니다.
  • 필요한 물건을 정보 공유를 통해서 저렴한 가격으로 구매할 수 있는 웹사이트 입니다.
  • 카테고리별로 다양한 핫딜 정보를 볼 수 있습니다.
  • 게시글을 통해 바로 쇼핑몰 링크로 이동하여서 구매할 수 있습니다.

1. 목표와 기능

  • 1.1 목표
    • Django를 통해 핫딜 정보를 게시할 수 있는 블로그 개발
    • Accounts(로그인, 회원가입)과 CRUD(생성, 읽기, 업데이트, 삭제) 기능을 CBV로 구현
    • BootStrap을 이용하여 깔끔하게 UI 꾸미기
  • 1.2 기능
    • 평소에 갖고싶던 물건을 게시글 상세보기를 통해서 더 합리적으로 구매할 수 있습니다.
    • 회원가입 후, 로그인을 해서 알고있는 핫딜 정보를 게시글로 올릴 수 있습니다.
    • 게시글에서 추천과 비추천, 댓글을 통해 의견을 나눌 수 있습니다.
    • 내가 쓴 글과 댓글을 단 글, 추천을 한 글들만 모아서 볼 수 있습니다.

2. Stacks

  • Enviroment
  •  
    Git

    GitHub
  • VSC
  • Development
  • python

    Django

    HTML

    BootStrap
  • DataBase
  • SQLite

3. 프로젝트/URL 구조 및 플로우 차트

3.1 프로젝트 구조

  • accounts와 blog 두개의 앱으로 구성
  • media, static, templates폴더를 root에 배치
    myblog
    ├── accounts
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── admin.py
    │   ├── apps.py
    │   ├── forms.py
    │   ├── migrations
    │   ├── models.py
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    ├── blog
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── admin.py
    │   ├── apps.py
    │   ├── forms.py
    │   ├── migrations
    │   ├── models.py
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    ├── db.sqlite3
    ├── manage.py
    ├── media
    │   └── blog
    │       ├── files
    │       └── thumb_images
    ├── projectdjango
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── asgi.py
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    ├── static
    │   ├── assets
    │   │   └── favicon.ico
    │   ├── css
    │   │   └── styles.css
    │   ├── index.html
    │   └── js
    │       └── scripts.js
    └── templates
      ├── accounts
      │   ├── form.html
      │   └── profile.html
      └── blog
          ├── addreplyform.html
          ├── editcommentform.html
          ├── menu.html
          ├── post_confirm_delete.html
          ├── post_detail.html
          ├── post_list.html
          └── postform.html

3.2 URL 구조

  • accounts
App URL Views Function HTML File Name Note
accounts '/signup' signup accounts/form.html 회원가입
accounts '/login' login accounts/form.html 로그인
accounts '/logout' logout - 로그아웃
accounts '/profile' profile accounts/profile.html 내 프로필
  • blog
App URL Views Function HTML File Name Note
blog '/blog' post_list blog/post_list.html 모든 게시글 보기
blog '/blog/mypost' mypost_list blog/post_list.html 내가 쓴 게시글 보기
blog '/blog/mycomment' mycomment_list blog/post_list.html 내가 댓글 쓴 게시물 보기
blog '/blog/myhits' myhits_list blog/post_list.html 내가 추천 누른 게시물 보기
blog '/blog/create' create_post blog/post_form.html 게시글 생성
blog '/blog/<int:pk>' post_detail blog/post_detail.html 게시물 상세 보기
blog '/blog/<int:pk>/edit' edit_post blog/post_form.html 게시물 수정
blog '/blog/<int:pk>/delete' delete_post blog/post_confirm_delete.html 게시물 삭제
blog '/blog/comment/create/<int:pk>' create_comment - 댓글 생성
blog '/blog/comment/edit/<int:pk>' edit_comment blog/editcommentform.html 댓글 수정
blog '/blog/reply/create/<int:pk>' create_reply blog/addreplyform.html 대댓글 생성
blog '/blog/hits/post/<int:pk>' hits_post blog/post_detail.html 게시글 추천
blog '/blog/unhits/post/<int:pk>' unhits_post blog/post_detail.html 게시글 비추천
blog '/blog/hits/comment/<int:pk>' hits_comment blog/post_detail.html 댓글 추천
blog '/blog/unhits/comment/<int:pk>' unhits_comment blog/post_detail.html 댓글 비추천

3.3 플로우 차트

  • 메인페이지에서 크게 로그인/회원가입과 게시물보기를 선택할 수 있습니다.
  • 로그인이 된 유저만 게시물쓰기, 추천, 댓글달기 등을 할 수 있습니다.image

4. WBS

  • 2023.10.26 ~ 2023.11.7image

5. ERD

  • User, Post, Comment, Category로 4개의 테이블로 구성
  • User과 Post, User과 Comment, Post와 Comment를 1:N 관계로 연결
  • Post와 Category는 N:N 관계로 연결
  • Comment에 parent_comments_id를 이용해서 대댓글을 구현image

6. UI

  • 메인화면에서 회원가입과 로그인
    Signup_Login

  • 게시물 목록 보기
  • 카테고리별로 볼 수 있음
  • 게시물의 추천 5개당 별이 하나씩 늘어남
    Post_list

  • 게시물 작성하기
  • 로그인된 유저만 작성할 수 있음
    CreatePost

  • 게시물 추천, 비추천 기능과 게시물 수정
  • 로그인된 유저만 추천, 비추천 할 수 있고 본인이 쓴 게시물만 수정 가능
    EditPost

  • 게시물 상세보기, 댓글 작성
  • 게시물의 상품명 또는 이미지를 클릭하면 상품 링크로 연결
  • 로그인된 유저만 댓글을 작성할 수 있음
    PostDetail+CreateComment

  • 댓글 추천, 비추천 기능과 대댓글 작성
  • 로그인된 유저만 댓글을 추천, 비추천 할 수 있고 대댓글을 작성할 수 있음
    HitComment+CreateReply

  • 댓글, 대댓글 수정
  • 내가 쓴 댓글 또는 대댓글만 수정 가능
    Edit comment

  • 프로필에서 내가 쓴 게시물, 내가 댓글 쓴 게시물, 내가 추천한 게시물 보기
    Profile+mypost+commentpost+hitpost

  • 게시물 리스트에서 검색하기
  • 제목, 내용, 댓글, 작성자 등으로 검색할 수 있음
    Search

'Django' 카테고리의 다른 글

TDD (Test-Driven Development)  (0) 2023.11.16
Django와 SQLite3  (0) 2023.10.23
Django 실습(9) 동영상 CRUD 구현하기  (0) 2023.10.20
Django 실습(8) RDB(관계형 데이터베이스) 만들어보기  (2) 2023.10.17
Django 템플릿 필터  (1) 2023.10.17