본문 바로가기

프로그래밍

(3)
[django] FormView의 사용자 입력 처리과정 1. FormView 소개 장고의 FormView는 반복된 작업을 줄이기 위해서 장고가 제공하는 클래스형 뷰인 Generic View 중 하나이다. 폼이 주어지면 해당 폼을 보여주고, 사용자가 폼에 값을 입력하면 처리하여 다른 url로 리다이렉트한다. 개발자가 입력해야 할 사항은 다음 네 가지다. form_class: 사용자에게 보여줄 폼을 정리한 forms.py 파일 내 클래스 명 template_name: 폼을 포함하여 렌더링 할 템플릿 파일 이름 success_url: 폼 처리가 정상적으로 되었을 때 사용자를 리다이렉트 시킬 URL form_valid(): 유효한 폼 데이터를 처리할 로직 2. 빈 Form 보여주기 사용자는 최초로 폼을 조회하기 위해 GET 메소드로 요청을 보낸다. 요청을 받은 Fo..
파이썬 딕셔너리 사용법 & 유용한 모듈 1. 딕셔너리란? 키/값 구조로 이루어진 자료구조, 평균 O(1)의 시간복잡도를 가지는 해시테이블로 구현되어 있다. 2. 사용법 1) 선언 a = {} #빈 딕셔너리 선언 a = {'key1': 'value1', 'key2': 'value2'} 2) 조회 >>> a['key2'] 'value2' >>> a.keys() #모든 key 조회 dict_keys(['key1', 'key2']) >>> a.values() #모든 value 조회 dict_values(['value1', 'value2']) >>> a.items() #모든 value 조회 dict_items([('key1', 'value1'), ('key2', 'value2')]) >>> 'key1' in a # key가 존재하는지 확인 True 3..
[파이썬 알고리즘] 20. 이진트리 직렬화 & 역직렬화 1. 문제 Leetcode 297. Serialize and Deserialize Binary Tree 주어진 TreeNode root를 string으로 직렬화시키는 함수 serialize, 다시 TreeNode로 역직렬화시키는 deserialize 함수를 구현하여라. 2. serialize 구현 덱을 이용한 BFS로 탐색한다. root를 넣어 다음에 탐색할 노드들을 넣을 덱을 만들고 덱에 남아있는 노드가 없을 때까지 탐색을 진행한다. 매 탐색 때마다 덱의 왼쪽에서 노드를 하나씩 뺀다. 만약 뺀 노드가 None이 아니라면 node의 값을 result에 추가하고, 자식 노드들을 덱에 추가한다. 탐색이 종료되면 result를 콤마로 구분되는 문자열로 만들어 리턴한다. def serialize(self, ro..