맞는데 왜 틀릴까..?

멋쟁이 사자처럼 프로젝트

백엔드 django 개발자 대나무숲 만들기

안도일 2022. 6. 4. 01:26

1. 가상환경 세팅

2. startproject dvsnvs 생성

3. startapp snsapp 생성, settings.py에 설정

settings.py

 

4. static 폴더 생성, settings.py에 설정

settings.py

 

5. snsapp에 templates폴더 생성 후 html 설정

base.html

static을 불러오는 {% load static %}, 

 href="{% static 'vendor/fontawesome-free/css/all.min.css' %}"

6. database 초기화 python manage.py migrate

 

7. 게시물 모델 생성

models.py

모델 생성 후 

python manage.py makemigrations

python manage.py migrate

 

 

8. admin에 등록

admin.py

admin 페이지에서 모델을 확인할 수 있게 등록 후

python manage.py createsuperuser 로 admin계정 생성

 

 

9. 익명 게시판 구현하기

index.html

 

글쓰기 버튼 생성

urls.py

 

 

forms.py

사용자로부터 입력을 받아들이는 form 생성

 

 

 

views.py

request에 따른 동작 구현

 

 

10. 게시판 보여주기

views.py

views.py에서 post객체를 시간순으로 정렬해 가져와 index.html에 넘겨줌

 

 

 

index.html

template언어의 반복문을 이용해 posts 객체 표시하고 제목인 post.title에 

해당 게시물을 보여주는 detail 페이지로 넘어가는 링크를 작성 (post.id를 같이 넘겨주어야함)

 

 

 

urls.py

detail 로 넘어가는 url 설정  post_id를 같이 넘겨받아 int형 순서대로 페이지를 생성

 

 

views.py

detail 함수 생성 

pk값이 post_id인 Post 객체를 post_detail에 삽입, 만약 없다면 404 error 출력

 

 

 

detail.html

 

detail.html에 post_detail 객체 표시

 

 

 

 

11. 댓글 구현하기

 

models.py

댓글 모델 생성

ForeignKey 중요! 

python manage.py makemigrations

python manage.py migrate

 

 

 

forms.py

CommentForm 생성

 

 

 

views.py

 

detail 함수에서 CommentForm을 두 번째 인자로 detail.html에 넘겨줌

 

 

 

detail.html

detail.html에 post_detail과 comment_form 객체 표시

 

 

 

urls.py

new_comment 경로 추가

 

 

 

veiws.py

댓글을 저장하는 new_comment 함수 구현

finished_form을 저장하지 않고 기다렸다가 pk 값이 post_id인 post 객체를 저장하고 난 후에 save

 

 

admin.py

amdin에 등록

 

 

 

detail.html

 

template언어 반복문을 통해 post_detail 객체 표시

 

 

12. 로그인, 로그아웃 구현

 

python manage.py startapp accounts

templates 생성 후 html 작성 (static 파일 경로 설정)

settings.py에 accounts 등록

 

 

urls.py

accounts app에 있는 views와 snsapp에 있는 views가 중복되므로  accounts_views로 import

login, logout 경로 설정

 

 

views.py

로그인, 로그아웃 함수 구현

 

 

 

base.html

로그인 하기 전이라면 user의 이름과 로그아웃 버튼을 띄우고,

그렇지 않다면 로그인 버튼을 띄움

 

 

 

13. 자유 게시판 구현하기

models.py

 

자유 게시판 model 생성

python manage.py makemigrations

python manage.py migrate

 

 

 

admin.py

admin 등록

 

 

urls.py

url 경로 등록

 

 

forms.py

form 생성

 

 

views.py

함수 작성

 

 

 

14. 회원가입 구현

 

login.html

 

urls.py

url 경로 설정

 

 

register.html

 

views.py