본문 바로가기

전체 글

(75)
django api_view 사용할때 permission custom하기 해당 포스팅 내용의 기본 사항은 FBV(함수형 뷰)를 기반으로 작성된다. permissions 란? 인증 및 제한과 함께 사용 권한은 request에 액서스를 허용할지, 거부할지를 결정하게 된다. django에서의 권한을 알아보면 대표적으로 is_superuser, is_staff, is_active 가 있다. is_superuser는 create super로 생성한 user에 대해 True이며 해당 계정의 is_superuser가 True이면 permission에 걸리지 않고 모든 권한에 대해서 접근 허용이 된다. is_staff는 True일 경우 우리가 잘 아는 admin페이지로 접속 가능하고 나머지는 일반 유저와 동일한 형태를 가진다. is_active는 계정 활성이라 생각하면 된다. 만약 Fals..
django FBV(함수형 뷰)에 대해서 django에서는 view를 처리할때 두가지 방법으로 처리할 수 있다. FBV(함수형 뷰), CBV(클래스형 뷰)로 처리할 수 있는데, 이번 포스팅은 FBV에 대해서만 다뤄볼 예정이다. FBV(함수형 뷰) FBV는 Function Base View를 뜻하고 있으며, 함수를 사용하고 있는 뷰이다. 사용 방법에 대해서는 url부터 알아 볼 수 있다. urls.py urlpatterns = [ path('', views.index, name='index'), ] view를 import해서 함수를 선언하는 형식으로 쓰여진다. views.py from rest_framework.response import Response from rest_framework.decorators impo..
django API 문서 설정 (drf-yasg) (참고) django rest framework는 설치가 되어있다는 가정하에 아래 내용을 진행하겠다. drf-yasg란? swagger라는게 있는데 해당 사항은 더 이상 패키지를 관리하지 않는다고 하여 drf-yasg를 사용하는 추세이기도 하다. 그래서 다른게 있는가? 다른건 없고 같은 API 문서 자동화 패키지 이다. drf-yasg install 및 설정 drf-yasg 라이브러리 설치 $ pip install -U drf-yasg settings.py 설정 INSTALLED_APPS = [ ... 'drf_yasg', ] urls.py 설정 import debug_toolbar from django.contrib import admin from django.urls import pat..
링크드 리스트(Linked List) - 1 링크드 리스트 구조 연결 리스트라고도 함 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조 (미리 그 길이를 정해둬야한다.) 링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 여결해서 관리하는 데이터 구조 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원 링크드 리스트 기본 구조와 용어 노드(Node) : 데이터 저장 단위(데이터값, 포인터) 로 구성 포인터(Pointer) : 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 # 기본 노드 만들기 class Node: def __init__(self, data): self.data = data # 이전 노드와 연결 할 데이터 값 self.next = None # 다음 노드와 연결 할 주소 공간 if __n..
스택(Stack) 스택(stack) 데이터를 제한적으로 접근할 수 있는 구조 (한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조) 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 (LIFO 정책) 스택 구조 스택은 LIFO(Last In First Out) 또는 FILO(First In Last Out) 데이터 관리 방식을 따름 LIFO : 마지막에 들어간것이 가장 먼저 나온다. FILO : 처음 들어간것이 가장 나중에 나온다. 대표적인 스택의 활용 - 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 주요 기능 push() : 데이터를 스택에 넣기 pop() : 데이터를 스택에서 꺼내기 스택 구조와 프로세스 스택 스택 구조는 프로세스 실행 구조의 가장 기본 자료 구조 스택의 장단점 장점 구조가 단순해서, 구현이..
큐(Queue) 큐(Queue) 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 예) 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일 (줄을 서는 행위와 유사하다) FIFO 와 LILO 정책이다. 알아둘 용어 Enqueue : 큐에 데이터를 넣는 기능 Dequeue : 큐에서 데이터를 꺼내는 기능 큐가 많이 쓰이는곳 멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용됨 LIFO Queue Last In First Out으로 마지막에 들어간 데이터가 가장 앞에 있는 데이터가 된다. 그러므로 데이터를 꺼내 올 땐 가장 마지막 데이터 부터 꺼내올 수 있다. (스택과 같은 형태라고 생각하면 된다.) import queue # LIFO 기법 data_queue = queue...
python map() map()은 파이썬의 내장함수이며, 여러 개의 데이터를 한번에 다른 형태로 변환하기 위해서 사용된다. 여러 개의 데이터를 담고 있는 list, tuple을 대상으로 주로 사용하는 함수이다. 사용법에 대해서 알아보면 map(변환 함수, 순회 가능한 데이터) map()은 두번째 인자로 넘어온 데이터가 담고 있는 모든 데이터에 변환 함수를 적용하여 다른 데이터를 반환한다. 간단한 예제로 보면 # 3개의 dict을 가진 list이다. users = [ {'mail':'test0@test.com', 'name': 'Brett Holland', 'gender': 'M'}, {'mail':'test1@test...
python iterable과 iterator에 대해 파이썬을 사용하다 보면 iterable, iterator 한 객체라고 하면서 많이 들어봤을 거다. 이 두 부분에 대해서 아래에 정리해보겠다. iterable iterable 한 객체는 즉, 반복 가능한 객체라고 알고 있으면 된다. 그러면 반복 가능한 객체는 무엇인가? 대표적으로 우리가 알고 있는 list, tuple, dict 등등 for 문에서 돌아가는 객체들을 생각하면 된다. 앞서 말한 저 3가지 말고도 다른 게 있는데 set, str, bytes, range 가 있다. # iterable 한 객체 예시 # list var_list = [1, 2, 3, 4] var_dict = {'a': 1, 'b': 2} var_set = {1, 2} var_str = 'abc&..