Rad Blog

Archive

Django - Queryset의 정렬 및 범위조건

2020-05-06 Django xfrnk2
이진석 선생님의 리액트와 함께 장고 시작하기 수강중 정리한 글입니다. 정렬 조건 추가 일관된 순서를 보장받기 위해 정렬 조건을 추가 DB에서 다수 필드에 대한 정렬을 지원하나 가급적 단일 필드로 하는것이 성능에 이익 시간순/역순 정렬이 필요할때는 id필드를 활용 정렬 조건 지정 방법 1. (추천) 모델 클래스의 Meta 속성으로 ordering 설정 : list로 지정 2. 모든 queryset에 order_by(…)에 지정 (주의) queryset코드에서 직접 order_by를 지정하면, Meta>ordering 설정값이 무시된다 django-extensions 커스텀 확장 기능 제공 라이브러리 Management Command, additional database fields, admin extensions 등을 지원 > python manage. Continue reading

20.05.05_TIL

2020-05-05 TIL xfrnk2
계획했던 일 LCS (최장 공통 부분 수열) 을 또다른 형태로 구현하기 또다른 학교 과제의 내용 조사하기 Django 배운 내용 문서화하기 행렬 곱셈을 이용한 피보나치 함수 구현을 위해, 행렬 기본 공부해보기 오늘 한 일 Django Migration을 통한 database 관리에 대해 복습하고 정리해서 글을 올렸다. LCS (최장 공통 부분 수열) 을 표준적인 방법으로 구현하였다. 행렬 이론에 대한 자료를 읽었다. 곱셈이 어떻게 이루어지는지를 더 면밀히 공부해야 할 것 같다. 내일 할 일 행렬 이론 및 행렬 곱셈에 대한 이해의 깊이 더하기 또다른 학교 과제의 내용 조사하기 Django QuerySet으로 간단 검색, 정렬을 할 수 있도록 구현하기 독서하기 동적 프로그래밍 문제 풀기

Django - Migration을 통한 database 스키마 관리

2020-05-05 Django xfrnk2
이진석 선생님의 리액트와 함께 장고 시작하기 수강중 정리한 글입니다. Migrations 모델의 변경내역을 “데이터베이스 스키마"로 반영시키는 효율적인 방법 제공 관련 명령: 마이그레이션 파일 생성 > python manage.py makemigrations <앱이름> 지정 데이터베이스에 마이그레이션 적용 > python manage.py migrate <앱이름> 마이그레이션 적용 현황 출력 > python manage.py showmigrations <앱이름> 지정 마이그레이션의 SQL 내역 출력 > python manage.py sqlmigrate <앱이름> <Migration 이름> Migration File 기능 모델의 변경내역을 누적 테이블 생성/삭제, 필드 추가/삭제 등 데이터베이스에 어떤 변화를 가하는 Operation들을 나열 Custom Python/SQL Operation (data migration 등) makemigrations 명령에 의해 모델로부터 자동 생성 모델 참조 없이 빈 Migration File을 만들어서 직접 채워 넣는 것도 가능 주의할 점 같은 Migration 파일이라도 DB 종류에 따라 다른 SQL이 생성됨 모든 데이터 베이스 엔진들이 같은 기능을 제공하지는 않음 적용된 마이그레이션 파일은 절대로 삭제해서는 안됨 의도에 맞게 Migration 파일이 생성되었는지 확인하는 것이 무엇보다 중요 Continue reading

20.05.04_TIL

2020-05-04 TIL xfrnk2
계획했던 일 Django 배운 내용 문서화하기 LCS (최장 공통 부분 수열) 을 또다른 형태로 구현하기 분할 정복, 동적 프로그래밍, 그리디 알고리즘의 대표적인 예에 대해서 조사하기 오늘 한 일 Django ManyToManyField 에 대해 복습하고 정리해서 글을 올렸다. Django OneToOneField 에 대해 복습하고 정리해서 글을 올렸다. 도서 ‘지적 대화를 위한 넓고 얕은 지식’ 을 어제 읽었던 부분을 다시 한 번 읽었다. 결과적으로 어제 이상으로 읽은 것은 10페이지 정도였다. 분할 정복, 동적 프로그래밍, 그리디 알고리즘의 대표적인 예에 대해서 조사한 내용을 정리 후 문서화했다. Continue reading

Django - 관계를 표현하는 Model Field - ManyToManyField

2020-05-04 Django xfrnk2
이진석 선생님의 리액트와 함께 장고 시작하기 수강중 정리한 글입니다. ManyToManyField M : N 관계에서 어느쪽이라도 필드 지정 가능 ManyToManyField(to, blank=Flase) on_delete 옵션이 없고 blank라는 옵션을 유의미하게 사용 예 ) 태그 지정에 대한 유효성 검사 ForeignKey 관계와 OneToOneField 관계에서는 두개의 모델만 있으면 충분하지만, ManyToManyField 관계에서는 두개의 테이블만으론 관계를 정의할 수 없기에 중간 테이블이 필요 (별도의 지정 및 정의도 가능) 방법 1 (권장) class Post(models.Model): tag_set = models.ManyToManyField('Tag', blank=True) class Article(models.Model): tag_set = models. Continue reading

Django - 관계를 표현하는 Model Field - OneToOneField

2020-05-04 Django xfrnk2
이진석 선생님의 리액트와 함께 장고 시작하기 수강중 정리한 글입니다. OneToOneField 1 : 1 관계에서 어느 쪽이라도 가능 User:Profile ForeignKey(unique_True)와 유사하지만, reverse 차이 User:Profile를 ForeignKey로 지정한다면 -> profile.user_set.first() -> user User:Profile를 OneToOneField로 지정한다면 -> profile.user -> user OneToOneField(to, on_delete) #django/contrib/auth/models.py class User(abstractBaseUser): ... # accounts/models.py class Profile(models.Model): author = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) https://docs.djangoproject.com/en/3.0/ref/models/fields/#onetoonefield OneToOneField에서의 related_name reverse 접근 시의 속성명 : 디폴트 -> 모델명소문자 accounts/models.py class Profile(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) phone = models. Continue reading

20.05.03_TIL

2020-05-03 TIL xfrnk2
계획했던 일 LCS (최장 공통 부분 수열) 알고리즘에 대해서 더 공부하기 독서하기 Django 배운 내용 문서화하기 오늘 한 일 도서 ‘지적 대화를 위한 넓고 얕은 지식’ 을 읽기 시작해서 20%정도 읽었다. 파이썬 사용자모임 단톡방에 올라온 질문들에 대해 답변을 남겼다. (리스트 열과 행의 합, 팩토리얼, Counter, 리스트 컴프리헨션) 그로부터 파생된 것들을 공부하는 시간을 보냈다. 딕셔너리의 값 기준 정렬 방법에 대해 알아봤다. 1. Counter(list).most_common(number) 2. result = sorted(arr.items(), key=lambda x : x[1]) 위처럼 두 가지 형태로 구현하였는데, 최빈값을 구하는 문제를 풀기 위함이었다. Continue reading
Older posts Newer posts