[POSTMAN] POSTMAN으로 API 호출해보기
·
Minding's Programming/Knowledge
포스트맨 설치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 권한
·
Minding's Programming/Django
모델에 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
·
Minding's Programming/Django
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
·
Minding's Programming/Django
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
·
Minding's Programming/Django
시리얼라이저(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] Admin 페이지 편집
·
Minding's Programming/Django
Admin 페이지는 아래와 같이 모델을 임포트해 등록만 해주면 해당 페이지에서 모델에 대한 CRUD가 가능하다는 편리함이 있었다. 하지만 CRUD는 어쩌면 가장 단순한 기능일지도 모른다. 관리자의 입맛에 맞게 Admin 페이지를 편집한다면, 더 편리하게 사용할 수 있을 것이다. Admin 편집 페이지 커스터마이징polls 폴더 아래에 있는 admin.py를 아래와 같이 수정해보자. Question 모델을 직접 설정한 class(QustionAdmin) 형식으로 등록해준다.# mysite/polls/admin.pyfrom django.contrib import adminfrom .models import *# Register your models here.admin.site.register(Choice)#..
[Python] 딕셔너리 max value에 대한 key 찾기
·
Minding's Programming/Knowledge
최대 value에 대한 key 찾기# di.get을 key로 이용하는 방법max(di,key=di.get)# 리스트 comprehension 이용하는 방법[k for k,v in di.items() if max(di.values()) == v]max(di)를 하면 di의 key값 중 최댓값이 출력됩니다. key=di.get을 사용했는데, di.get은 일반적으로 di.get(key)와 같이 쓰여 해당 key에 대한 value를 출력해주는 함수입니다. max의 key로 di.get함수를 사용했는데 key를 입력으로 value를 출력하기 때문에 value의 최댓값을 기준으로 하여 di의 key를 출력해주게 됩니다. 다음으로 사용한 것은 리스트 컴프리핸션입니다. max(di.values())를 하게 되면 딕셔..
[Django] 폼(Forms)
·
Minding's Programming/Django
폼(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 }} {%..