해당 쿼리는 매우 위험하므로 주의해서 사용해야 한다. curruent_schemas() 함수로 가져온 모든 테이블 명을 프로시저에서 반복문을 이용해 drop table if exists 쿼리로 삭제한다. DO $$ DECLARE r RECORD; BEGIN -- if the schema you operate on is not "current", you will want to -- replace current_schema() in query with 'schematodeletetablesfrom' -- *and* update the generate 'DROP...' accordingly. FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = curre..
전체 글
코드만 봐도 다 알 수 있다.스키마를 만들다 보면 중복되는 필드가 많은 부분이 생기기 마련이다. 이런 스키마들은 보통 공통의 스키마를 만들고 상속 받아서 사용하곤 한다. 장고에서 추상 모델을 만들고 상속해서 만드는 방법은 아래와 같다. 추상 모델 추상화 하고자 하는 모델의 메타 클래스에 아래와 같이 abstract = True 옵션을 추가하면 해당 모델은 추상 모델이 된다. class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True class ..
출처: https://woolbro.tistory.com/82 TIP - 장고 데이터베이스 여러개 사용하기 (Django multidatabase) 안녕하세요~~ 회사 내부에서 장고를 사용하면서 공부하다가 정리 해 놓고 싶어서 간단하게 적어보겠습니다~ 프로젝트를 진행 하면서 하나 이상의 디비(Database)를 바라보아야 할 때가 있죠! 이렇 woolbro.tistory.com 일단 기록용으로 저장해두되 실제로 적용하고 결과물까지 캡처해서 다시 작성하기 안녕하세요~~ 회사 내부에서 장고를 사용하면서 공부하다가 정리 해 놓고 싶어서 간단하게 적어보겠습니다~ 프로젝트를 진행 하면서 하나 이상의 디비(Database)를 바라보아야 할 때가 있죠! 이렇게 저렇게 찾아보다가, 다들 적용하는 방법만 나와있고 실제로..
출처: https://velog.io/@suasue/Django-%EC%A0%95%EB%A0%AC-%EB%BD%80%EA%B0%9C%EA%B8%B0-order-by-annotate-extra 나중에 추가로 더 정리해서 작성할 예정 오늘의 집에는 다양한 정렬 기준이 있는데 장고로 최신순(+오래된순), 낮은가격순, 높은 가격순, 많은리뷰순 정렬을 시도해보도록 하자. 쿼리 파라미터로 조건 받아오기 정렬 조건을 쿼리 파라미터 형식으로 받을 것이다. class ProductView(View): def get(self, request): order_condition = request.GET.get('order', None) 'order'이라는 key로 쿼리 파라미터의 값을 받아와 order_condition이라는 ..
출처: https://www.winterjung.dev/list-of-lists-to-flatten/ 우연히 커뮤니티의 프로그래밍 게시판에서 파이썬의 2중 리스트 를 일자화 시키는 것에 대해 보게되었다. 2중 리스트를 1차원 리스트로 만드는 방법은 몇 개 알고 있었는데 어떤 댓글에서 sum(numbers, [])라는 식으로 2중 리스트를 일자화 시키는 것을 보고 전혀 알지 못했던 트릭이라 신기했다. 동작 원리를 설명할 겸 다른 flatten 방식도 살펴보자. 여러 방법들 list_of_lists = [[1, 2], [3, 4]] 라는 (2, 2) 형상의 list가 있다고 가정하면 이 list를 [1, 2, 3, 4]의 1차원 리스트로 만드는 방법은 여러가지가 있다. itertools.chain() 파이썬..
API Document: https://docs.djangoproject.com/en/5.0/ref/models/querysets/ 장고의 orm이라 볼 수 있다. 그만큼 쿼리에서의 많은 메소드들을 지원한다. 공식 문서의 메소드 리스트를 일부 캡처한 모습이다. 자세한 내용은 위의 API 문서를 참고하자. 우리는 여기서 쿼리셋을 집중 탐구 해보도록 한다. QuerySet 쿼리셋은 데이터베이스를 통과하는 모든 것에 대한 구성, 필터, 슬라이스 등을 지원한다. Iteration Iterable의 성격을 가지고 있어 for 문에서 호출이 가능하다. for e in Entry.objects.all(): print(e.headline) 하지만 모든 것을 불러오는 메소드 이므로 한 개 이상일 때만 결과를 볼 수 있으..