Framework/Django

TIL - 장고 코멘트 기능 ? (Django practice)

청렴결백한 만능 재주꾼 2020. 5. 15. 21:14
반응형

단순 기능 코멘트 기능.. 어떠한 글에 댓글 다는 건 아니고 그냥 글을 올릴 수 있는 기능을 만들었다. 하나하나 밟고 성장한다는 느낌이 조금 있지만 아직 갈길이 멀다는 생각에 발걸음을 재촉할 뿐이다.

 

정말 코멘트기능이라고 하기에는 부끄럽지만.. 일단 오늘 뭔가를 했다는 것에 올린다. 


새로운 app을 만들었다.

python manage.py startapp comment

를 하여 comment 에 대한 작업을 시작한다.

models.py

사실 account 앱과 거의 비슷하게 만들었다. 모델스는 알다시피 데이터베이스에 넣을 양식을 정하는 것이다. 이름과 내용 그리고 만들어진 시기와 업데이트된 시기를 같이 넣을 것이다. db_table  이름은 comment로 하였다. 

 

 

 

 

 

 

comment/views.py

뷰스에 필요한 모듈들을 넣어준다. django.views의 View는 기본적으로 장고에서 제공하는 것인데 넣어주고

httpresponse와 jsonresponse는 어카운트 app에서 처럼 같은 이유로  api바디의 문서형식에 따라 응답해주는 것들.

그리고 위에서 정의한 모델을 넣기 위해 comment를 넣어준다.

 

AccountView와 비슷하게

POST를 할 때에 

CommentView를 넣어주고

요청의 body를 json.loads를 통해 불러와서 data로 지정한다.

코멘트 생성 함수를 써주고 세이브를 한다. 

그래서 포스트를 하면 데이터가 저장이 된다. 이름과 내용이.

 

그리고 GET으로 들어왔을 때

코멘트 리스트를 보여준다. 

 

 

 

westa/urls.py settings.py에 지정되어 있는  urls파일이다.

메인 urls파일에 comment로 url받고 들어오는 것들을 comment디렉토리 안에 urls로 가라고 하는 것을 넣어주고

 

 

 

comment/urls.py

코멘트앱 디렉토리 안에 있는 urls.py에 추가해준다. 일단 comment만 url에 붙어서 오면 view를 지정한 것을 보여주라고 해준다.

방금 위에서 view를 지정한 것들이 실행되게 해주는 것이다.

 

그리고 사실 startapp하고 app이 만들어 졌을 때 제일 먼저 해야할 것이 있는데 오늘은 젤 마지막에 했다.

 

 

 

 

westa/settings.py

세팅에가서 INSTALLED_APPS에 comment를 추가해줌. 이렇게 해야지 장고에서 comment라는 앱을 인식하고 처리해준다. 

 

자 이렇게 한다음

 

python manage.py makemigrations comment

 

를 해준다. 어느 한 지점(?) , 내가 변경하고 햇던 것들이 저장되는 것이다. 만들어주고 

 

python manage.py migrate 

를 한다.

그러면 아까전에 모델에 적었던 

class meta

     db_table='comment'

 

도 적용이 되어 comment테이블도 생긴다.

 

이렇게 한다음 

 

python manage.py runserver

를 한다. 

 

그리고 실험을 하는데

 

코멘트 넣기 실험
기분 좋은 결과

 

이제 Get으로 땡겨봅시다... 

데이터를 안 넣으면 get으로 온다..ㅎ준비한 view를 get할 수 있게 해놨으니 그 화면을 기다린다.

 

아까전에 실험 했던 코멘트와 방금 입력한 것 두개가 왓다.

 

사실 기본 timezone을 저기 UTC로 해놔서 시간이 이상하게 나왔지만 내가 의도한 대로 결과값이 나왔다.

 

물론 시행착오가 많았고 많은 오류창들을 읽고 수정하고 고치고 했다. 쉽고 쉬운 기능이지만 왜이렇게 힘들었는지. 이제 좀 감이 잡힌다. 

 

오타를 내지말자...가 오늘의 다짐이다. 그럼 20000

반응형