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
-
- Development
-
- DataBase
-
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 플로우 차트
- 메인페이지에서 크게 로그인/회원가입과 게시물보기를 선택할 수 있습니다.
- 로그인이 된 유저만 게시물쓰기, 추천, 댓글달기 등을 할 수 있습니다.
4. WBS
- 2023.10.26 ~ 2023.11.7
5. ERD
- User, Post, Comment, Category로 4개의 테이블로 구성
- User과 Post, User과 Comment, Post와 Comment를 1:N 관계로 연결
- Post와 Category는 N:N 관계로 연결
- Comment에 parent_comments_id를 이용해서 대댓글을 구현
6. UI
- 메인화면에서 회원가입과 로그인
- 게시물 목록 보기
- 카테고리별로 볼 수 있음
- 게시물의 추천 5개당 별이 하나씩 늘어남
- 게시물 작성하기
- 로그인된 유저만 작성할 수 있음
- 게시물 추천, 비추천 기능과 게시물 수정
- 로그인된 유저만 추천, 비추천 할 수 있고 본인이 쓴 게시물만 수정 가능
- 게시물 상세보기, 댓글 작성
- 게시물의 상품명 또는 이미지를 클릭하면 상품 링크로 연결
- 로그인된 유저만 댓글을 작성할 수 있음
- 댓글 추천, 비추천 기능과 대댓글 작성
- 로그인된 유저만 댓글을 추천, 비추천 할 수 있고 대댓글을 작성할 수 있음
- 댓글, 대댓글 수정
- 내가 쓴 댓글 또는 대댓글만 수정 가능
- 프로필에서 내가 쓴 게시물, 내가 댓글 쓴 게시물, 내가 추천한 게시물 보기
- 게시물 리스트에서 검색하기
- 제목, 내용, 댓글, 작성자 등으로 검색할 수 있음
'Django' 카테고리의 다른 글
Zappa로 AWS Lambda를 사용해서 Django 서버리스 배포하기 (0) | 2024.12.30 |
---|---|
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 |