본문 바로가기

전체 글

(75)
Django seed로 테스트 데이터 자동 생성 해당 내용 참고 하기전 먼저 보고와야할 내용이 있다. 알고 있다면 계속해서 참고하자. django로 개발시 테스트 데이터가 필요한 경우 손수 하나씩 넣는건 비효율적이다. 그래서 사용하는것이 django-seed이다. django-seed 모듈을 통해 필드에 맞는 데이터를 직접 알맞게 셋팅 가능하다. install $ pip install django-seed 설정 # settings.py INSTALLED_APPS = [ 'django_seed', ] 위의 작업을 마치면 django-seed를 사용할 준비는 끝났다. 그럼 사용 방법을 예제로 알아보자 User 테이블에 데이터를 10개 정도 만들어보자 키워드는 seeder.add_entity(User, 10) 이다. add_entity()안에..
Django management command 사용하기 일단 시작 하기에 앞서 프로젝트에 management/command와 같이 폴더를 만들어준다. 어디든 상관 없다. 본인이 알 수 있는곳에 생성한다. 만약, 어디에 생성해야할지 고민이라면 일단 필자의 경로와 같이 만들어보자. 프로젝트 제일 상단 즉, 프로젝트를 만들때 startapp으로 생성한 폴더와 같은 위치(동등한 위치)에 core라는 폴더를 만들어 주고 management/command 폴더(오타나면 안됨)를 순서대로 만들어준다. 그리고 command 폴더 아래에 파일을 생성할껀데 무슨이름으로 해도 상관은 없지만 _(밑줄)을 사용한 이름을 사용할 수 없다. (ex) _private.py) 이것만 주의 한다면 어떠한 이름으로 한들 상관없다. 그럼 코드를 보며 구조를 살펴 보자 import random ..
Django User model Custom AbstractUser (사용자 정의 사용자 모델 대체) 일부 프로젝트에는 Django의 내장 사용자 모델이 항상 적절하지 않은 인증 요구 사항이 있을 수 있다. 예를 들어 일부 사이트에서는 사용자 이름 대신 이메일 주소를 식별 토큰으로 사용하는 것이 더 합리적이다. Django를 사용하면 커스텀 모델을 참조하는 AUTH_USER_MODEL 설정 값을 제공하여 기본 사용자 모델을 재정의 할 수 있다. AUTH_USER_MODEL = 'users.User' # . 위의 코드 내용은 Django project에서 settings.py에 포함되어야 하며 선행 작업으로는 Django app이름이 INSTALLED_APPS 에 선언 되어 있어야 한다. INSTALLED_APPS = [ ... &#3..
재귀함수 재귀함수는 자기 자신을 다시 호출하는 함수를 의미 한다. 자신을 호출하면서 (재귀함수 - 복사본)이 만들어져서 실행되기 때문에 가능하다. 그렇다면 계속 자신을 호출하면 언제 끝내야하나? 그래서 재귀함수에서 필요한게 재귀의 탈출 조건이다. 예를들어 재귀의 탈출 조건이 0이 탈출 조건이라면 해당 조건이 성립되어 함수가 반환되기 시작한다. (자기 자신을 호출 했던 반대로 타고 올라간다 생각하면 된다.) 몇가지 예시를 코드로 들어볼 수 있다. # 1 def func(n): if n == 1: return n elif n % 2 == 0: return func(int(n / 2)) else: return func(3 * n + 1) func(3) 위 코드는 짝수일때 n을2로 나누고 홀수일때 3*n+1을 한다. 그..
python 내장함수 sort(), sorted() python에서는 리스트를 정렬하는 내장 함수가 있다. sort() 와 sorted() 가 있다. 각각의 의미를 알아보자면 sort() : 리스트를 제자리에서 수정하는 내장 함수 test = [5, 4, 3, 2, 1] test.sort() print(test) # [1, 2, 3, 4, 5] sorted() : iterable로 부터 새로운 정렬된 리스트를 만드는 내장함수 test = sorted([5, 4, 3, 2, 1]) print(test) # [1, 2, 3, 4, 5] sort()와 sorted()의 차이가 있다면 sort()는 리스트에서만 사용할 수 있다. sorted()는 모든 iterable을 정렬 가능할 수 있다. 예를 들어보자면 test = sorted({1: 'A',..
삽입정렬 -스터디- 삽입정렬이란? 정렬되지 않은 부분의 데이터를 뽑아서 정렬된 부분의 적절한 위치에 삽입하는 방법이다. 말 그대로 삽입 해서 넣는 정렬 방법이다. 다른 정렬방식과는 다르게 앞의 원소들과 큰지 작은지 비교하여 정렬하는 방식이다. 앞의 원소와 비교해야하기 때문에 index1부터 시작한다. (제일 앞의 index는 0이다.) 리스트의 길이가 길 수 록 효율이 떨어진다. 공부 방법 정렬 순서를 차근차근 손으로 써가며 알아봤다. 손으로 쓰기 좀 길지만 길이가 5인 리스트를 정렬해 보았다. 삽입정렬은 두번째 원소인 index가 1인 원소부터 시작해야한다는 점을 기억하고 시작하자. 전체적인 흐름을 말하자면 삽입할 index와 비교할 index의 크기를 비교하여서 비교할 index가 더 크면 서로의 위치를 바꾸는 방식이다..
선택정렬 -스터디- 선택정렬이란? 리스트(배열)안에 난잡하게 정렬되어있는 수들을 오름차순(1->2->3->...) 시킨것이다. 그런데 어떻게 정렬시켰는지가 중요한데, 버블정렬처럼 현재 선택된 수와 그 다음수를 비교해서 변경하는것과는 약간 다르게 선택된 인덱스에 있는 값과 리스트 전체의 값들을 한번씩 비교해가며 한번 순회할때마다 최소값을 찾아서 처음 선택된 인덱스와 바꿔주는 것을 선택정렬이라한다. 공부 방법 노트에 직접 적어가며 리스트의 내용이 선택정렬로 정리 되는 과정을 하나하나 직접 그려가며 말로 나열 하며 이해함. [5, 4, 3, 2, 1] 이라는 리스트가 있다. 해당 정렬 기법은 처음 선택된 idx와 해당 idx를 제외한 전체 리스트의 idx의 값을 비교하여최소값을 찾아서 선택된 idx와 최소값으로 선택된 idx를 ..
python json 모듈로 json 데이터 다루기 python은 json 데이터를 처리하기 위해 내장 모듈인 json을 사용할 수 있습니다. 일단 json을 사용하기 위해 import json을 선언 해준다. loads() JSON 문자열을 python 객체로 변환할 수 있게 해준다. import json json_data = '''{ "id": 1, "fullname": "Dana", "email": "dana222@test.com", "admin": False }''' json_data = json.loads(json_data) print(json_data) 파일에 저장되어있는 JSON문자열을 읽거나, HTTP 요청의 body를 읽을때 자주 사용함 dumps() python 객체를 json문자열로 변환할 수..