- 다양한 핫딜 정보를 게시할 수 있는 블로그 입니다.
- 필요한 물건을 정보 공유를 통해서 저렴한 가격으로 구매할 수 있는 웹사이트 입니다.
- 카테고리별로 다양한 핫딜 정보를 볼 수 있습니다.
- 게시글을 통해 바로 쇼핑몰 링크로 이동하여서 구매할 수 있습니다.
1.1 목표
- Django를 통해 핫딜 정보를 게시할 수 있는 블로그 개발
- Accounts(로그인, 회원가입)과 CRUD(생성, 읽기, 업데이트, 삭제) 기능을 CBV로 구현
- BootStrap을 이용하여 깔끔하게 UI 꾸미기
1.2 기능
- 평소에 갖고싶던 물건을 게시글 상세보기를 통해서 더 합리적으로 구매할 수 있습니다.
- 회원가입 후, 로그인을 해서 알고있는 핫딜 정보를 게시글로 올릴 수 있습니다.
- 게시글에서 추천과 비추천, 댓글을 통해 의견을 나눌 수 있습니다.
- 내가 쓴 글과 댓글을 단 글, 추천을 한 글들만 모아서 볼 수 있습니다.
- 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
- 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 | 댓글 비추천 |
- 메인페이지에서 크게 로그인/회원가입과 게시물보기를 선택할 수 있습니다.
- 로그인이 된 유저만 게시물쓰기, 추천, 댓글달기 등을 할 수 있습니다.
- 2023.10.26 ~ 2023.11.7
- User, Post, Comment, Category로 4개의 테이블로 구성
- User과 Post, User과 Comment, Post와 Comment를 1:N 관계로 연결
- Post와 Category는 N:N 관계로 연결
- Comment에 parent_comments_id를 이용해서 대댓글을 구현
- 메인화면에서 회원가입과 로그인
- 게시물 목록 보기
- 카테고리별로 볼 수 있음
- 게시물의 추천 5개당 별이 하나씩 늘어남
- 게시물 작성하기
- 로그인된 유저만 작성할 수 있음
- 게시물 추천, 비추천 기능과 게시물 수정
- 로그인된 유저만 추천, 비추천 할 수 있고 본인이 쓴 게시물만 수정 가능
- 게시물 상세보기, 댓글 작성
- 게시물의 상품명 또는 이미지를 클릭하면 상품 링크로 연결
- 로그인된 유저만 댓글을 작성할 수 있음
- 댓글 추천, 비추천 기능과 대댓글 작성
- 로그인된 유저만 댓글을 추천, 비추천 할 수 있고 대댓글을 작성할 수 있음
- 댓글, 대댓글 수정
- 내가 쓴 댓글 또는 대댓글만 수정 가능
- 프로필에서 내가 쓴 게시물, 내가 댓글 쓴 게시물, 내가 추천한 게시물 보기
- 게시물 리스트에서 검색하기
- 제목, 내용, 댓글, 작성자 등으로 검색할 수 있음
