티스토리 뷰

반응형

[1] 관리자 계정 만들기

 

DB를 GUI 환경에서 보기 위해서 

http://localhost:8000/admin/ 으로 들어가보면 

 

이렇게 로그인화면이 뜹니다. 

 

 

관리자 계정을 만들고 로그인 해줄게요 (참고: [Django] 튜토리얼 part 2 (2) - 관리자 페이지, DB를 GUI환경에서 보기, TimeZone 설정)

 

아래의 명령어를 실행해서 만들어줍니다. 

python manage.py createsuperuser

 

서버를 돌리고 관리자 페이지에 들어가서 로그인이 잘되는 지 확인해줍니다. 

python manage.py runserver

 

 

[2] 관리자 사이트에 모델 등록하기

 

question앱의 admin.py에 들어가서 

아래의 코드로 모델을 등록해줍니다. 

 

 

관리자 사이트에 다시 들어가보면 

Question DB가 생성되어있습니다. 

 

 

그리고 이제 Question모델을 DB에 사용하게 되었으니까 migration을 해줍니다. 

안그러면 새로운 Question 데이터를 만들고 Save할때 에러가 납니다ㅠㅠ

 

 

아래의 코드로  마이그레이션을 만들고 

python manage.py makemigrations

 

아래의 코드로 마이그레이션 해줍니다. 

python manage.py migrate

 

 

[3] DB에 데이터 추가하기

 

add 눌러서 Question 데이터를 추가해줍니다. 

 

 

 

3개 만들어줄게요

 

[4] url 패턴 변경

 

 

이제 localhost:8000/question/1/ 이런 url로 요청하도록 url pattern을 바꿔줍니다. (question앱의 urls.py에서)

 

[5] get 함수 변경

이제 들어오는 id(primary key, 1부터 시작함)에 따라 해당하는 Question을 json으로 주도록 get함수를 바꿔줍니다.

id 파라미터를 추가해주고 get_object_or_404 함수를 이용해줍니다.

 

 

 

테스트 해보면 아이디에 따라 잘 내려주네요..!! 

 

 

 

 

DB에 없는 id도 에러를 잘 주는 군요

 

 

[6] 리스트를 주는 새로운 get 함수 추가 

이번엔 모든 Question 리스트를 주는 새로운 get함수를 추가해줄게요-!

QuestonList라는 APIView를 추가했습니다.

 

 

QuestionSerializer가 이렇게 모델 하나만 받게 생겼잖아요..!

 

 

근데 serializer에 many=True 옵션을 주면 리스트 형태의 json을 만들 수 있어요 👍

 

 

그리고 url로 localhost:8000/question/all/ 로 들어오면 저 메소드가 불리도록

question앱의 urls.py에가서 urlpattern을 추가해줍니다.

 

 

그리고 돌려보면 DB에 있는 Question 데이터를 모두  json으로 잘 내려주는 것을 볼 수 있습니다!+!

 

반응형
댓글