Framework (35) 썸네일형 리스트형 [Django] Model Query 지난 글에서는 Greeting 이라는 model 을 정의하고 migration 을 통해 database 에 model 을 적용해보았다. 이번 글에서는 django 에서 제공해주는 API 를 사용하여 model 객체를 생성하고 수정, 삭제하는 방법을 정리해본다.1. Managerdjango model 을 사용하여 query 를 작성하기 전에 manager 라는 개념에 대해서 먼저 알아보자. manager 는 django model 에 database query 작업을 제공해주는 인터페이스로 django app 에 포함된 모든 model 들은 최소 하나의 manager 를 가지고 있다.model 클래스가 가지고 있는 manager 는 기본적으로 objects 라는 이름을 가진다. 해당 model 과 관련된 .. [Django] Model 정의와 Migration 지난 글에서는 hello 라는 django app 을 추가하고 간단한 api 를 추가하고 호출해보는 과정을 진행해보았다. 이번에는 django model 을 추가하고 django 기능을 사용해 database 에 적용하는 과정을 진행해보겠다.1. Django Model- django modeldjango 에는 model 이라는 개념이 있다. model 은 데이터 정보에 대해 정의된 클래스로, 데이터베이스의 테이블에 매핑되는 클래스라고 생각하면 된다. 테이블의 각 컬럼에 매핑되는 속성과 이를 다루는 메서드들을 포함하고 있다. django 의 migration 기능을 통해 model 을 database schema 에 적용할 수 있다.- model 정의model 을 정의하기 위해서는 django.db.mod.. [Django] Django app 생성 지난 글에서는 python 가상환경을 구성하고 Django 설치, Django project 생성까지 진행했다. 이번 글에서는 생성된 project 에 Django application 을 추가하고 간단하게 http api 를 구현해보겠다.1. appilcation 생성django 에는 app 이라는 개념이 있다. app 은 실제 서비스 로직을 가지는 web application 을 의미하는데, django project 는 django 관련 설정과 여러 app 들로 구성된다. app 은 django 의 특정 컨벤션에 따른 python 패키지로 구성되는데, 아래와 같이 간단한 명령어로 app 을 생성할 수 있다. $ python manage.py startapp hello 명령어를 실행하면 hello 라.. [Django] Django 설치 와 project 생성 지금 회사에 입사하면서 Django framework 를 처음 사용해보게 되었다. 실무를 하면서 Django 에 대해서 알아가면서 업무를 수행했다. 연말을 맞아서 파편화된 Django 지식들을 모아서 시리즈로 써보려고 한다. Django 설치, 프로젝트 초기화부터 ORM, cache, DB 연결, multi-tenancy, wsgi, asgi, celery 등등 다양한 기능과 여러 서비스들의 연동까지 최대한 다양한 내용들을 정리해보고자 한다. 이 글에서는 가장 기본이 되는 Djang 설치와 Django project 생성에 대해서 정리해보았다.1. django 설치가상환경 설정django 는 python 에서 웹 서비스를 구현하기 위한 framework 이다. 이때문에 기본적으로 python 이 설치된 .. [Django] Django Model Field - FileField 사용예제 (2) 지난 글에서 Django 의 모델 필드 중 FileField 에 대해서 알아보았다. FileField 는 필드에 파일을 연결하고 이를 저장하는 기능을 하는 타입으로 이 글에서는 이 필드를 사용하여 파일을 저장해보려한다.FileField 사용예제Django model 에서 FileField 를 사용하여 파일을 저장하는 예제이다. 먼저 장고의 settings.py 에서 FileField 의 파일을 저장할 기본 경로와 URL 인 MEDIA_ROOT 와 MEDIA_URL 값을 저장해준다. # settings.pyMEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, "media") 그 다음 FileField 필드를 가지는 django model 클래스를 정의했다. .. [Django] Django Model Field - FileField (1) 1. FileFieldFileField 는 파일 업로드를 위한 필드이다. FileField 는 두가지 선택 인자가 있는데 upload_to 와 storage 이다.- FileField.upload_to파일 업로드 디렉토리와 파일 이름을 설정하는 속성으로 두가지 방법으로 설정할 수 있다. 두가지 방법 모두 설정한 값들이 Storage.save() 메서드로 전달된다. 만약 아래와 같이 strftime() 형식을 포함한 문자열 값이나 Path 객체로 값을 설정한 경우, 파일 업로드시의 날짜/시간으로 해당 형식이 대체된다. class MyModel(models.Model): # 파일은 MEDIA_ROOT/uploads 경로에 저장된다. upload = models.FileField(upload_to="uploa.. [Django] select_related() 와 prefetch_related() Django 로 백엔드를 개발하던 중, 연관관계가 복잡한 엔티티들의 조회를 구현해야하는 경우가 발생했다. 성능을 생각해서 raw query 로 작성을 하려다가 이번기회에 Django ORM 에서 안 써본 기능 들을 쓰고싶어서 ORM 으로 개발하기로 했다. 연관관계를 가지는 엔티티들을 조회할 때, 일반 방식으로 접근하면 lazy loading 으로 N+1 문제가 발생하게 된다. 이때문에 한번에 객체들을 조회할 수 있도록 eager loading 방식으로 구현해야 한다. Djnago ORM 에서는 eager loading 방식을 select_related() 와 prefetch_related() 두가지 기능으로 제공해주어 이에 대한 정리를 해보려한다.1. eager loading (즉시 로딩)ORM 에서 외.. [Spring] 자바 웹 애플리케이션 & WAS 동작 원리 파이썬 웹 애플리케이션을 실행하기 위한 Gateway Interface 서버인 WSGI, ASGI 등에 대해 정리한 적이 있다. 이러한 Gateway Interface 서버는 파이썬으로 구현되어 있어서, Django와 같은 파이썬 웹 프레임워크로 개발된 애플리케이션을 파이썬 모듈로 import 하여 사용할 수 있다. 이는 인터페이스 서버가 동작하는 프로세스 안에서 해당 애플리케이션 코드를 직접 import하여 Python object 또는 callable 형태로 사용한다는 의미이다. 그렇다면 자바에서는 어떨까? 파이썬의 Gateway Interface 서버와 유사하게, 자바에도 Tomcat, Jetty 등의 웹 애플리케이션 서버 (WAS) 가 존재한다. 이들 서버 역시 요청을 받아 자바 애플리케이션을 .. 이전 1 2 3 4 5 다음