django15 Django, n+1 문제해결을 위한 select_related, prefetch_related select_realtedselect_related는 SQL의 JOIN 연산을 사용하여, 관련된 객체를 단일 쿼리로 데이터베이스로부터 미리 로드합니다. 이 메서드는 1:1 또는 1:N 관계에 사용되며, 데이터베이스의 부하를 감소시키는 데 효과적입니다.from django.db import modelsclass Author(models.Model): name = models.ChareFiled(max_length=100)class Book(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(Author, on_delete=models.CASCADE)## 쿼리books = Book.objects... 2024. 11. 7. APIClient와 APIRequestFactory의 차이 Django Rest Frameworkd(DRF)에서는 API를 테스트할 때 사용할 수 있는 여러 유틸리티를 제공하는데, APIClient와 APIRequestFactory는 그 중에서도 가장 자주 사용되는 도구입니다. 각각의 사용 목적과 기능적 차이를 아래와 같이 설명하려 합니다.1. APIClientAPIClient 는 DRF의 테스트를 위한 가장 강력한 도구 중 하나로, 완전한 웹 브라우저와 유사한 방식으로 작동합니다. 즉, 클라이언트는 HTTP 요청을 서버에 보내고 응답을 받는 과정을 시뮬레이션할 수 있습니다. APIClient를 사용하면 인증, 쿠키, 세션 등의 상태를 관리하면서 HTTP 메서드(GET, POST,PUT, DELETE 등)를 통한 요청을 손쉽게 만들 수 있습니다.from rest.. 2024. 10. 9. Django 사용자 모델 커스터마이징하기 Django의 기본 사용자 모델은 많은 프로젝트에 충분하지만, 때로는 추가 정보를 저장하거나 기본 동작을 변경해야 할 필요가 있습니다. 이러한 요구사항을 충족하기 위해 Django는 사용자 모델을 커스터마이징할 수 있는 기능을 제공합니다. 다음은 커스텀 사용자 모델을 구현하는 방법을 단계별로 설명합니다.1. settings.py에서 사용자 모델 설정하기프로젝트의 settings.py 파일에서 AUTH_USER_MODEL 설정을 추가하여 Django에게 기본 사용자 모델 대신 사용할 모델을 알립니다.config/settings.pyAUTH_USER_MODEL = 'user.User'이 설정은 user앱의 User모델을 참조합니다. 이렇게 설정함으로써, Django는 모든 인증 관련 구조에서 이 커스텀 모델.. 2024. 10. 9. Django와 PostgreSQL 어울리는 이유 목차 Django와 잘 어울리는 이유 내장지원 Django는 PostgreSQL의 고유한 기능들을 최대한 활용하고 이를 쉽게 사용할 수 있도록 설계되었습니다. 예를 들어, Django의 ORM은 PostgreSQL의 고급 데이터 유형 및 쿼리 기능을 자동으로 지원합니다. 커뮤니티와 도구 Django와 PostgreSQL 모두 강력하고 활성화된 커뮤니티를 보유하고 있습니다. 이는 수많은 플러그인, 도구 및 문서가 지속적으로 개발되고 유지되고 있음을 의미합니다. 개발자는 이러한 리소스를 활용하여 더 효율적으로 개발할 수 있으며, 특히 Django와 PostgreSQL을 함께 사용할 때 더 많은 시너지를 경험할 수 있습니다. 확장성, 트랜잭션 관리, 고급 기능 지원, 안정성과 성능 Django 특성 및 장점과.. 2024. 4. 16. Django 프로젝트 Docker를 사용하여 배포하기 목차 Docker가 없는 배포 처음 Django 웹 애플리케이션을 배포할 때 Docker없이 EC2에 아래의 패키지와 파일을 생성하여 관리해야 했었다. /home/usr/projects/django: 프로젝트 소스코드 /home/usr/venvs/django: 프로젝트 가상환경 /home/usr/venvs/django.env: 가상환경 실행 명령어 /home/usr/venvs/django.sh: 가상환경 실행 및 gunicorn 실행 자동화 /etc/nginx/sites-enabled: nginx 파일 보통 로컬에서 개발과 테스트를 마치고 서버환경에서 개발에 사용된 도구(Django, nginx 등)에 대한 버전을 맞추어 설치해 주고 설정파일들을 작성해주어야 합니다. 이 과정을 Docker가 대신한다면 .. 2024. 4. 16. Django, foreignkey error - 무결성에 문제가 없더라도 migrations 폴더와 pycache에 문제가 없는지 살펴보기 1. 데이터베이스 마이그레이션 오류 Django의 ORM(Object-Relational Mapping)을 사용하여 개발하는 과정에서 모델에 변경이 발생하면, 이러한 변경 사항을 데이터베이스 스키마에 반영하기 위해 마이그레이션 파일을 생성하고 적용해야 합니다. 때로는 마이그레이션 파일들 간의 불일치나, 잘못 적용된 마이그레이션으로 인해 ForeignKey와 같은 관계 필드에 대한 무결성 오류가 발생할 수 있습니다. 2. 스키마 불일치 오류 데이터베이스 스키마와 Django 모델 간의 불일치로 인해 발생할 수 있는 오류입니다. 예를 들어, 데이터베이스에는 존재하지 않는 필드를 모델에서 참조하려고 하거나, 필드의 타입이 서로 일치하지 않을 때 발생할 수 있습니다. 3. 개발 환경과 배포 환경 간의 불일치 로.. 2024. 4. 12. Django, 서드파티 앱에 대해서 서드 파티 앱이란 무엇인가? 장고는 매우 강력한 웹 프레임워크이지만, 모든 기능을 기본적으로 제공하지 않습니다. 이 때 서드파티 앱이 중요한 역할을 합니다. 서드 파티 앱은 장고 커뮤니티에서 개발된 외부 라이브러리나 패키지로, 특정 기능을 추가하거나 기존 기능을 확장합니다. 이러한 앱들은 장고의 기능을 넘어서서 더욱 복잡하고 고도화된 웹 애플리케이션의 구축을 가능하게 합니다. 인기 있는 서드파티앱 1. Django REST framework 웹 API 개발을 위한 강력한 툴킷으로, 데이터 직렬화, 인증, 권한 부여등을 포괄적으로 지원합니다. 2. Celery with Django 배경 작업과 비동기 작업을 관리하는데 유용합니다. 이를 통해 서버의 기능을 향상시키고 사용자 경험을 개선할 수 있습니다. 3... 2024. 4. 8. letsencrypt를 통해 nginx에 SSL/TLS인증서 적용하기 1. letsencrypt 설치 1) Let'Ecrypt란? Let's Encrypt는 사용자에게 무로 SSL/TSL 인증서를 제공하는 비영리 인증 기관입니다. 장점!! (1) 무료 인증서 발급: 모든 사용자에게 무료로 인증서 제공 (2) 자동화: 인증서 발급, 설치, 갱신 과정을 자동화할 수 있습니다. (3) 간편한 설치 및 유지: Cerbot과 같은 클라이언트를 사용하여, 명령어 몇 줄로 인증서를 발급받고 설치할 수 있습니다. (4) 보안강화: SSL/TLS 인증서를 통해 웹사이트의 데이터 전송이 암호화되어 사용자의 정보가 보호 됩니다. (5) 브라우저 호환성: Let's Encrypt에서 발급한 인증서는 대부분의 주요 웹 브라우저에서 인정받고 있습니다. (6) 커뮤니티 지원: 풍부한 지식이 공유되어.. 2024. 4. 8. Django와 라즈베리파이 이용한 실시간 영상 스트리밍 서버 구축(MQTT 프로토콜) 0. 개요 본 글에서는 DJango 웹 프레임워크와 라즈베리파이를 사용하여 실시간 영상 스트리밍 서버를 구축하는 방법을 소개하겠습니다. Django는 웹 인터페이스와 서버 관리를 담당 라즈베리파이의 PiCamera는 영상 스트리밍 1. 사용된 툴 라즈베리파이, PiCamera, Django, Python31) view.py class CamView(TemplateView): template_name = "cam.html" def get_context_data(self): context = super().get_context_data() context["mode"] = self.request.GET.get("mode", "#") return context def stream(request): mjpegst.. 2024. 4. 7. 이전 1 2 다음