model 사용해서 데이터 조회하기
model.py에서 모델 클래스에 __str__ 메서드 정의하기 → 모델 출력값 확인하기 위해 필요
- return 값으로 Question 테이블의 question_text 필드만 출력하도록 지정
def __str__(self):
return self.question_text

question 테이블은 다음과 같음

model의 .objects.all() 메서드를 사용하면, Question 테이블의 모든 값이 출력됨


model의 .objects.get() 메서드를 사용하면, Question 테이블에서 특정 id의 데이터만 출력됨


view 함수의 파라미터
요청을 받을때 url에 있는 path를 view의 파라미터로 입력 받을 수 있음
- ex) http://localhost:8000/polls/1/로 요청하면, pk 파라미터는 1을 입력 받음

http://localhost:8000/polls/1/로 요청시
- request는 클라이언트가 서버로 보낸 요청 정보
- pk는 1이 됨


http://localhost:8000/polls/100/으로 요청시
- 마찬가지로 request는 클라이언트가 서버로 보낸 요청 정보
- pk는 100이 됨


post 요청 데이터 받기
view에서 request.body를 참조하면, post 요청 데이터를 받아올 수 있음
- @csrf_exempt: CSRF 검사를 생략하여, 클라이언트가 CSRF 토큰 없이도 POST 요청을 보낼 수 있도록 설정
@csrf_exempt
def vote(request, question_id):
if request.method == 'POST':
data = json.loads(request.body)
print(data)
return JsonResponse({"message": "voted"}, status=201)

해당 post 요청을 보내면, request.body를 참조하고 {"choice_id": 4}를 출력
POST http://localhost:8000/polls/1/vote/
Content-Type: applicaion/json
{"choice_id": 4}

'Language > Python' 카테고리의 다른 글
[Python] Django 투표 앱과 frontend 연결하기 (0) | 2024.12.17 |
---|---|
[Python] Django 투표 앱 RESTful api로 리팩토링하기 (0) | 2024.12.17 |
[Python] Django 투표 앱 만들기 (2) (0) | 2024.12.17 |
[Python] Django 투표 앱 만들기 (1) (1) | 2024.12.17 |
[Python] Django 프로젝트 생성하기 (1) | 2024.12.17 |