본문 바로가기

반응형

장고 파이썬

[Django] RelatedField RelatedField1. PrimaryKeyRelatedField 현재 User List를 살펴보면, 각 유저의 question 필드에 질문 레코드의 id값이 표시되는 것을 확인할 수 있다. 이것은 serializers.py에서 UserSerializer를 설정할 때 PrimaryKeyRelatedField를 사용했기 때문이다.# mysite/polls_api/serializers.pyclass UserSerializer(serializers.ModelSerializer): # questions 필드를 명시하는 이유: User 모델과 Question 모델 간의 관계를 보여주기 위함 questions = serializers.PrimaryKeyRelatedField(many=True, quer.. 더보기
[Django] 클래스 기반의 View, Mixin, Generic View Class 기반의 View이전에 구현했던 것처럼 HTTP 메서드를 기반으로 View를 생성(GET, POST, PUT, DELETE) 할 수도 있지만, 클래스를 기반으로 View를 생성할 수도 있다. 먼저 전체 리스트를 불러오거나(GET) 데이터를 생성(POST)했던 QuestionList가 어떻게 바뀌었는지 보자. from rest_framework.response import Responsefrom rest_framework import statusfrom polls.models import Questionfrom .serializers import QuestionSerializer# APIView 사용을 위한 라이브러리 임포트from rest_framework.views import APIView#.. 더보기
[Django] Serilaizer 시리얼라이저(Serilaizer)?시리얼라이저는 모델 인스턴스나 QuerySet과 같은 데이터를 JSON 파일로 변환하는 작업(Serialize) 또는 JSON을 모델 인스턴스로 변환하는 작업(Deserialize)을 할 때 쓰이는 매개체다. 시리얼라이저 구현우리가 이전에 만들었던 Question과 Choice 모델을 통해서 시리얼라이저를 구현한 뒤, Serialize와 Deserialize를 시도해보자. 우선 터미널 창에서 mysite 폴더로 이동한 다음, 아래와 같은 명령어를 입력한다. polls라는 app을 api형태로 구현할 것이기 때문에, app 이름을 polls_api로 설정했다.python manage.py startapp polls_api mysite 폴더 내부를 살펴보면 아래와 같이 po.. 더보기
[Django] 폼(Forms) 폼(Forms)폼은 사용자로부터 데이터를 받을 수 있는 형식을 말한다. 지난 시간([Django] 뷰(views)와 템플릿(templates))에서 다룬 상세 페이지에서 선택지가 단순히 노출되는 것이 아닌 사용자로부터 선택할 수 있게 만들어 보려고 한다. detail.html 수정 {% csrf_token %} {{ question.question_text }} {% if error_message %} {{ error_message }} {% endif %} {% for choice in question.choice_set.all %} {{ choice.choice_text }} {%.. 더보기
[Django] 뷰(views)와 템플릿(templates) 뷰(Views)뷰는 말 그대로 '보여주는' 역할을 한다. HTML 페이지 또는 모델 등에서 받아온 데이터를 사용자에게 노출시켜 준다. mysite 아래에 있는 urls.py에서 해당 URL에 요청이 오면, views.py에서 지정된 함수에 의해 해당 화면을 노출시킨다.# mysite/urls.pyfrom django.contrib import adminfrom django.urls import path, include# polls/ URL 뒤에는 polls 폴더 내 urls.py 설정을 따름urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls),]# mysite/polls/urls.pyfrom .. 더보기

728x90