본문 바로가기
반응형

프로그래밍/Django7

[Django]filter_fields로 URL 파라미터 사용하기 시작 CRUD에서 GET을 통한 작업은 매우 필수적이다. Django는 원하는 정보만을 필터링해서 데이터를 읽어올 수 있는 Filter_Fields를 제공한다. [Request URL] http://127.0.0.1:8000/users?email=test@admin.co&username=test 위와 같이 API를 통해서 요청을 보낼때, 파라미터에 값을 정해주고 내가 원하는 값을 얻고자 할때 주로 사용이 된다. 조금 더 시각화를 돕기 위해서 swagger의 기능을 사용하여, 이해하려고 한다. swagger 모델을 따로 만들어서 하기는 귀찮았기 때문에,,, 기본적으로 제공되는 Django의 User 모델을 사용하여 연습해보자!😀 위의 캡쳐는 Swagger를 통해서 나의 API가 어떻게 구성되어 있는지 확인.. 2022. 5. 13.
[Django] 멀티 DB 라우터설정 및 연동하기 계기 개인 프로젝트를 여러개 하다보니 DB 포트가 겹치기도 하고, 가끔 필요한 데이터를 이미 만들어둔 경우에 재사용을 하고 싶어서 시작하게 되었다. 기술스팩 일단 기본적으로 DB는 도커를 사용하여 MySQL을 사용하였다. 연동 1. Django 프로젝트의 setting.py를 열고 'DATABASES={}'를 설정해준다. 기본적으로 아래와 같이 설정되어 있을것이다. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } 기본적으로 DATABASES의 키 값이 default로 설정되어 있는데, 현재 프로젝트에선 각각의 DB를 분리하기 위해서 아래과 같이 변경하였다. DATABA.. 2022. 5. 11.
[Django][에러노트]raise ValueError, "No frame marked with %s." % fname 에러사항 Django 프로젝트에서 환경변수(.env)를 읽어오는 라이브러리 'environ'을 사용했을 때 에러가 발생했다. (하위 라이브러리 import 예시) import environ [설치] $ pip install environ 위의 방식으로 설치했을 경우 에러가 발생한다. 때문에 위의 방식이 아닌 다른 방식으로 설치를 해주어야지 에러를 피할 수 있다. 해결방안 $ pip install django-environ 2022. 5. 7.
[Django][Python]QuerySet N+1 prblem 해결하기 해당 내용의 원문은 [링크] 이곳에서 발췌해왔습니다😀 이전에 글에서 언급했던 N+1문제를 해결하는 방법에 대해서 적으려고한다. N+1문제에 대해선 아래 링크에 적어두었고, 해당 링크 하단쯤에 내용이 있으니 참조하면 좋을것같다. [Django][Python]QuerySet을 통해 알아보는 ORM의 특징 해당 정보는 Pycon자료를 통해 만들었습니다. 참고자료는 아래와 같습니다 [링크1], [링크2] ORM이란? ORM 설명 Object Relational Mapping, ORM은 객체 지향적인 방법으로 데이터를 쉽게 조작할 수 있게 해준 dentuniverse.tistory.com 위의 링크에서 내용을 읽었다는 전제하에 내용을 추가로 적으려고한다. 아래는 예제 코드이다. 아래의 코드를 보면 위 링크에서 언.. 2022. 4. 6.
[Django][Python]QuerySet 캐싱을 통해 문제 해결하기 [Django][Python]QuerySet을 통해 알아보는 ORM의 특징 [Django][Python]QuerySet을 통해 알아보는 ORM의 특징 해당 정보는 Pycon자료를 통해 만들었습니다. 참고자료는 아래와 같습니다 [링크1], [링크2] ORM이란? ORM 설명 Object Relational Mapping, ORM은 객체 지향적인 방법으로 데이터를 쉽게 조작할 수 있게 해준 dentuniverse.tistory.com 위의 링크는 Django ORM이 가지고 있는 문제를 정리하고, 발생할 수 있는 문제에 대해서 정리해두었다. 그중에서 오늘은 Lazy Loading을 통해서 생길 수 있는 문제를 해결하는 방법을 코드로서 구현해보려고 한다. 앞서 올린 글에서도 언급했지만 Django에선 지연로딩.. 2022. 4. 6.
[Django][Python]QuerySet을 통해 알아보는 ORM의 특징 해당 정보는 Pycon자료를 통해 만들었습니다. 참고자료는 아래와 같습니다 [링크1], [링크2] ORM이란? ORM 설명 Object Relational Mapping, ORM은 객체 지향적인 방법으로 데이터를 쉽게 조작할 수 있게 해준다. Model class를 통해 객체를 만들고, 이 객체를 통해 DB에 접근한다 [예시] Django ORM은 2가지의 특징을 가진다. 1. Lazy Loading(지연로딩) : 필요한 시점에 SQL을 호출하는 특징 2. Lazy Fetching : 외래키로 접근할 때, 바로 접근(?)할 수 있는 특징을 가진다. [Lazy Loading 특징 예시] 조금더 자세한 설명을 코드로 확인해 볼 수 있다. 아래는 위의 설명을 풀어놓기 위해서 내 프로젝트 내부의 코드이다. cl.. 2022. 4. 6.
반응형