python 29

[Django] DRF 검색 필터

안녕하세요 요즘 스프링 공부하는데 신경을 써서 Django 공부를 게을리하였는데요 복습하는 김에 블로그에 정리를 하려고 합니다. DRF에서 filter 부분에 대해서 자세히 설명해드리겠습니다. Filtering 먼저 해당 패키지를 설치를 합니다. pip install django-filter settings.py의 rest_framework의 옵션에 filter를 사용을 합니다. # settings.py REST_FRAMEWORK = { ............. "DEFAULT_FILTER_BACKENDS": [ "django_filters.rest_framework.DjangoFilterBackend", ], ............. } views.py 부분에서 검색 필터 부분을 설정을 해보겠습니다. ..

python 2022.08.25

[알고리즘] Python 재귀함수

안녕하세요 알고리즘 공부를 하면서 블로그에 정리를 할려고 하는데요 Java를 공부하면서 알고리즘 파이썬을 하다니... 파이썬이 쉬우니깐요 ^^ 그래도 알고리즘은 어렵습니다. 한개한개 미션 클리어 하는 느낌으로 블로그를 작성해볼게요 파이썬 재귀함수 파이썬에서 사용하는 함수는 아니고요. 모든 프로그래밍 언어에서 함수 안에서 함수 자기자신을 호출하는 방식을 재귀호출(recursive call)이라고 합니다. 재귀호출은 일반적인 상황에서는 잘 사용하지 않지만 알고리즘을 구현할 때 매우 유용합니다. 예를 들어서 DFS(깊이 우선 탐색) 이라던가 집합의 합이라던가 팩토리얼 등 다양한 곳에 사용을 할 수가 있습니다. 재귀함수 사용 간단하게 재귀호출 함수를 만들어 보겠습니다. def hello(): print("Hel..

python 2022.08.07

[데이터과학] Seaborn

데이터 전처기 공부를 하다가 시각화인 Seaborn을 사용했는데 정리하는 겸해서 블로그에 글을 남겨볼게요 Seaborn Seborn은 Matplotlib을 기반으로 다양한 색상 테마와 통계용 차트 등 기능을 추가한 시각화 패키지이다. 기본적인 시각화 기능은 Matplotlib 패키지에 의존하며 통계 기능은 Statsmodels 패키지에 의존한다. Seaborn에 대한 자세한 내용은 공식문서를 참고해주세요!!! 데이터 시각화의 경우, 모든 문법을 암기하는 것은 중요하지 않습니다. 라이브러리에는 어떤 시각화를 지원하는지 알고 필요할 때 찾아볼 수 있으면 된다. 홈페이지를 방문하여 갤러리에서 어떤 시각화가 구현 가능한지 한번 보는 것을 권장한다. 밑에는 공식 Seaborn 자료이니 참고한다 http://sea..

python 2022.04.18

Queue 큐

큐는 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료구조이다. 큐는 가장 먼저 삽인 된 자료가 가장 먼저 삭제되는 선입선출(FIFO; First In First Out) 방식으로 처리한다. 너비 우선 탐색(BFS)에 주로 사용한다. 파이썬에서 큐 사용하기 파이썬에서 큐 자료구조를 사용하는 방법은 3가지 정도가 있다. List 자료구조 사용하기 Collections 모듈의 deque 사용하기 queue 모듈의 Queue 클래스 사용하기 이 중 어느 것이 무조건 좋다고 할 수 없고, 각 방법보다 장단점이 있다. List 이런 방식으로 list를 사용하면 데이터를 추가하고 앞에서 데이터를 제거할 수 있기 때문에 큐 자료 구조를 사용하는 효과가 납니다. .appe..

python 2022.02.07

[Django] Rest API

이번에 작은 프로젝트에 참여하게 되었는데 안드로이드에 서버를 Django를 써서 하게 되었다 그래서 json으로 통신을 하기 위해서 rest api를 쓰게 되었다 그래서 블로그에 내가 공부한 것을 정리해보려고 합니다. REST API? Rest란 'Representational State Transfer'의 약자로 아키텍처 스타일의 디자인 원칙을 준수하는 API입니다. 이러한 이유 때문에 REST API를 종종 RESTful API라고도 합니다. 즉, 어떤 프레임워크를 쓰든 어떤 언어를 가져다가 쓴 소프트웨어를 만들든 Rest API 폼에 맞춰서 기능을 만들어내면 되는 겁니다. REST API의 목적 SOAP 어려운 것을 쉽게 하고 이해하고 사용하기 쉬운 REST API를 만드는 것 RESTful 한 A..

python 2022.01.26

[Django] 페이징 Paging

Pagination을 구현할 수 있는 방법에 대해서 알아보겠습니다. 먼저 장고에서 페이징을 위해 사용하는 클래스는 Paginator이다. Paginator 클래스를 사용하여 다음과 같은 방법으로 나타내겠습니다. view에서 index 함수는 제일 첫 페이지에서 리스트를 보이는 것을 관리하는 부분입니다. index 함수를 살펴보자 page = request.GET.get('page', '1)은 https://localhost:8000/bo/?page=1 처럼 GET 방식으로 호출된 URL에서 page 값을 가져올 때 사용한다. 만약 https://localhost:8000/bo/처럼 page 값 없이 호출된 경우에는 디폴트 1이라는 값을 설정한다. 그리고 Paginator 클래스를 다음처럼 사용했다. pa..

python 2022.01.11

[Django]클래스형 뷰

뷰는 요청을 받아서 응답을 반환해주는 호출 가능한 객체입니다. 장고에서는 뷰를 함수라도 작성할 수 있고 클래스로도 작성할 수 있습니다. 지금까지는 뷰를 함수로 작성하였지만, 사실 함수형 뷰보다 클래스형 뷰가 장점이 많습니다. 클래스 형 뷰를 사용하면 상속과 믹스인 기능을 사용해서 코드를 재사용할 수 있고, 뷰를 체계적으로 구성할 수도 있습니다 또한, 앞으로 살펴보게 될 제네릭 뷰 역시 클래스 형 뷰로 작성되어 있습니다. 간단한 경우에는 함수형 뷰로 신속하게 개발하는 것도 하나의 방법이지만, 로직이 복잡 해질수록 프로젝트가 커질수록 클래스형 뷰의 장점이 효과를 발휘할 것입니다. 또한 장고를 계속 사용하다 보면, 클래스형 뷰를 훨씬 많이 접하게 될 것입니다. 장고의 URL 해석기는 요청과 관련된 파라미터들을..

python 2022.01.03

[Django] Admin 꾸미기

장고의 Admin 사이트 꾸미는 것에 대해서 설명해드릴게요 장고의 Admin 사이트는 데이터베이스에 들어있는 데이터를 쉽게 관리할 수 있도록 데이터의 생성, 조회, 변경, 삭제 등기능을 제공합니다. Admin이란 용어 때문에 프로세스의 상태 조회, 기동 및 정지 등의 프로세스 관리 기능을 떠오를 수도 있지만, 이러한 기능은 제공하지 않습니다. models.py 부분에서 데이터 타입을 지정을 해주고 크기를 지정을 해줍니다. 그러고 나서 __str__을 이용해서 admin 부분에서 리스트 질문 값을 question_text의 값으로 설정을 해줍니다. 그리고 pub_date 변수에서 DateTimeField 부분의 값이 '-'가 안 붙어 있으면 오름차순으로 정렬을 해주고, '-'이 붙어 있으면 내림차순으로 정..

python 2021.12.28

[Django] MTV 패턴

장고는 MVC(Model(데이터)-View(사용자 인터페이스)-Contoller(데이터 처리 로직)를 기반으로 한 프레임워크다. 하지만 장고에서는 같은 개념은 MTV(Model - Template - View)라고 부른다 1. Model 모델은 데이터베이스에 저장되는 데이터를 의미한다. excel과 같은 표의 형태로 정리하여 데이터베이스에 넣는다고 생각하면 된다. 원래 DB를 다루기 위해서는 SQL이라는 언어를 알아야 하지만, 장고는 이 SQL을 몰라도 DB 작업을 가능하게 해주는 ORM을 제공하기 때문에 공부할 내용이 훨씬 적다 더보기 ORM이란? Object-Relational Mapping의 약자로, 쉽게 표현하면 객체와 관계형 데이터베이스를 역할을 합니다. 기존의 웹 프로그래밍에서 데이터베이스 접..

python 2021.12.28

[알고리즘]트리 - 전위순회, 중위순회, 후위순회

트리(Tree) 정점(node)와 간선(edge)을 이용하여 데이터의 배치 형태를 추상화한 자료구조를 의미한다. 트리의 구조를 일정하게 제한하여 정의하면 트리의 연산이 단순하여 명확해진다. 전체 트리의 차수가 2이하가 되도록 정의한 것이 이진 트리이다. 이 글에서 구현된 트리의 종류는 다음과 같으며 모두 연결 자료구조로 구성되었다 차수 : 어떤 노드가 가지고있는 자식의 수 높이 : 트리가 가지고 있는 최대 레벨을 말합니다. 이진트리 : 이진트리의 순회는 재귀 호출을 사용한다. 따라서 전위순회, 중위순회, 후위 순회를 간단하게 구현할 수 있다. 순회란 트리 내의 노드들 사이를 돌아다는 것을 의미합니다. 전위, 중위, 후위 순회 예) 전위 순회 순서는 DLR (D 루트이고, L 왼쪽, R 오른쪽) A->B-..

python 2021.12.26