티스토리 뷰
Django - REST framework 구현하기 ver2.0 (feat. TODO app, functional view) - pt.1
브라이언77 2020. 3. 3. 13:18Django - REST framework 구현하기 ver2.0
이번 포스팅에서는 REST framework 을 이용해서 todo list application 을 만들어볼 예정이다.
0. Django REST Framework 공식 사이트
https://www.django-rest-framework.org/
1. application setup
- project setting : adding application
- project urls :
- model
- view
- url for app ( restapi )
- result
request : http://127.0.0.1:8000/restapi/
2. REST framework settings.
- install django-rest-framework
- add rest framework to project .
3. REST framework 구현하기
- json 형식의 데이터를 요청하는 기본 api 구현
데코레이터 @api_view 를 이용해서 rest api 를 구현하고, return 값을 json 형식의 데이터를 보내주면 된다.
서버를 구동하고 접속하면 다음과 같은 화면을 볼수 있다.
4. 모델 데이터를 API 로 접속하기
- serializers.py 생성하기
모델 데이터를 rest api 로 만들기 위해서는 serializer 를 이용한다. serializers 파일을 생성하고 Task 모델에 대한 Serializer를 다음과 같이 구현한다. 실제 구현방식은 모델폼(ModelForm) 과 매우 유사하게 작성된다. 대상이 되는 모델과 필드를 지정해주면된다.
- Task List view 만들기
TaskSerializer를 이용해서 TaskList 뷰를 작성한다.
- urls : taskList 뷰를 위한 urls 를 추가한다.
- result
task-list 에 대한 요청, 현재 저장된 task 가 없어서 empty result 가 반환된다.
- Task Create view 만들기
Create 는 사용자의 입력데이터를 POST 방식으로 전달받아서 모든 항목이 valid 하면 저장하고 다시 화면으로 출력시킨다.
- urls for Task Create
- example
같은 방식으로 테스트를 위해서 추가로 데이터 입력한다.
- create taskDetail view
DetailView 의 경우는 특정데이터의 정보를 url로 부터 받아서 상세데이터를 보여주는 기능을 제공한다.
- url for detail view
url 에 특정데이터에 대한 key(id) 정보를 포함해야한다.
- test result
참고로, POST / GET API 개발시 유용한 툴 : POSTMAN
url : https://www.postman.com/
Task Update 기능 구현하기
- taskUpdate view.
- url for taskUpdate
- example
TaskDelete 구현하기
- delete view
- delete url
- example
여기까지해서 Todo List app을 위한 REST api(List, Create, Detail, Update, Delete) 가 모두 작성되었다. 이를 이용해서 다음 포스트에서는 화면 구성을 진행할 예정이다.
끝...
'Django(장고) > Django Tutorial' 카테고리의 다른 글
django - custom user account 사용하기 (0) | 2020.04.04 |
---|---|
Django - heroku 배포하기 ( heroku cli 사용 ) (0) | 2020.03.22 |
Django - REST framework 사용하기(feat. class view ) (0) | 2020.03.03 |
Django - 뷰 (list view, detail view) (0) | 2020.02.25 |
Django - url 매핑 (0) | 2020.02.25 |
- Total
- Today
- Yesterday
- Karabiner-Elements
- 미밴드4
- webhook
- df 명령어
- amaztools
- 미밴드
- 메시지 전송
- slack api
- 디스크 사용량
- venv
- HOME key
- 장고
- angular
- 파이썬
- cmd창
- django
- vscode
- python message
- Python
- win7
- cmd실행
- 프로젝트 생성
- channel oauth
- du 명령어
- win10
- python slack
- HOME/END
- 팀 소통
- END key
- http 요청
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |