본문 바로가기

반응형

django

[Django] Testing(Testing Serializer, Testing View) TestingTesting은 각 기능의 테스트를 일일히 하는 것이 아닌, 주요 기능들을 컴퓨터 스스로 할 수 있도록 자동화하는 것을 뜻한다. 개발 시간을 줄여주고, 문제를 발견 및 예방하는데 도움이 된다. 테스트 코드로 인해 코드도 간결해지고, 협업에 도움이 된다는 장점도 있다. polls_api 폴더로 이동해보자. 생성한 앱에는 자동으로 test.py 파일이 존재하는 것을 볼 수 있다.이 test.py 파일에 testing 코드를 넣고 파일을 실행해 테스트를 자동화할 수 있다. Testing Serializer먼저 시리얼라이저에 대한 테스트 코드를 작성해보자.from django.test import TestCasefrom polls_api.serializers import QuestionSeriali.. 더보기
[Django] 투표 기능 구현하기 1인 1투표 기능 구현하기Vote 모델 만들기이전에 투표 기능을 구현할 때([Django] 폼(Forms))는 User의 정보를 따로 받지않아 1명의 User가 여러 번 투표를 할 수 있었다. 이번에는 RESTful API framework를 이용해 계정 정보를 저장하는 모델을 따로 만들어 1개의 계정이 여러 번 투표를 할 수 없도록 하려고 한다. 먼저, 투표한 질문, 답변, 계정 정보를 담을 테이블을 생성하기 위해 모델을 만들어준다.# mysite/polls/models.pyfrom django.contrib.auth.models import Userclass Vote(models.Model): # 투표한 질문 question = models.ForeignKey(Question, on_del.. 더보기
[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.. 더보기
[POSTMAN] POSTMAN으로 API 호출해보기 포스트맨 설치https://www.postman.com/downloads/ Download Postman | Get Started for FreeTry Postman for free! Join 30 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.www.postman.com POSTMAN으로 API 호출해보기POSTMAN은 RESTful API 테스트를 위한 플랫폼으로, 다양한 HTTP 요청을 보내고 응답 결과를 쉽게 확인할 수 있도록 도와준다. 또한, API 요청과 응답 결과를 저장하고 공유할 수 있는 기능도 제공한다. 이 글에서는 이전에 Djang.. 더보기
[Django] User 항목 모델에 추가 / User 관리 / User생성 / User 권한 모델에 User 항목 추가하기User는 기본적으로 contrib.auth를 통해 관리된다. 해당 라이브러리 안의 Users라는 모델을 불러와 User가 어떤 형식으로 구성되어 있는지 shell을 통해 알아보자.>>> from django.contrib.auth.models import User>>> User>>> User._meta.get_fields()(, , , , , , , , , , , , , )User가 가지고 있는 필드는 매우 많다. id와 password부터 슈퍼유저 여부, 이메일 등등 다양한 필드를 가지고 있다. 현재 User의 리스트를 먼저 살펴보자.>>> User.objects.all()]>현재는 이전에 만들어 두었던 관리자 계정인 admin만 남아있는 상태다. 이 유저(admin)를 .. 더보기
[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] GET, POST, PUT, DELETE HTTP 메서드HTTP는 요청 메서드를 정의해, 주어진 리소스(데이터)에 수행하길 원하는 행동을 뜻한다.GET: 특정 리소스의 조회를 의미, 이 요청은 데이터를 받기만 한다.POST: 특정 리소스에 엔티티를 제출할 때 쓰임, 즉 새로운 데이터를 생성할 때 쓰임PUT: 특정 목적 리소스의 데이터를 수정한다.DELETE: 특정 리소스를 삭제한다.Django API로 GET 구현django로 view를 구현할 때(뷰(views)와 템플릿(templates)), 질문 리스트를 보여주던 페이지가 있었다. 바로 index에 해당하는 메인 페이지다. 잠깐 기억을 되돌려 polls의 views.py를 살펴보자.# mysite/polls/views.pyfrom django.shortcuts import renderfro.. 더보기
[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.. 더보기

728x90