티스토리 뷰
[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으로 잘 내려주는 것을 볼 수 있습니다!+!
'🐍 > DRF' 카테고리의 다른 글
[PythonAnywhere] 장고 admin 페이지 CSS가 안먹을때 (0) | 2020.09.13 |
---|---|
[PythonAnywhere] 장고 rest API 배포하기 (0) | 2020.09.11 |
[DRF] get 요청 받는 API 만들기 (1) (0) | 2020.09.10 |
[DRF] 모델과 ModelSerializer 만들기 (0) | 2020.09.10 |
[DRF] 프로젝트 세팅 (0) | 2020.09.10 |
- Total
- Today
- Yesterday
- flutter 앱 출시
- 장고 Custom Management Command
- cocoapod
- flutter build mode
- 장고 URL querystring
- Dart Factory
- Django Heroku Scheduler
- Watch App for iOS App vs Watch App
- drf custom error
- Sketch 누끼
- DRF APIException
- Python Type Hint
- 구글 Geocoding API
- 플러터 얼럿
- 플러터 싱글톤
- flutter deep link
- Flutter getter setter
- SerializerMethodField
- ipad multitasking
- Flutter 로딩
- Flutter Clipboard
- Django Firebase Cloud Messaging
- METAL
- github actions
- Django FCM
- Flutter Text Gradient
- ribs
- flutter dynamic link
- PencilKit
- Flutter Spacer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |