반응형

Django 7

장고(Django) - media 파일 다루기

서론 장고에서의 media 파일은 ImageField와 FileField를 통해 저장하게 된 파일들을 의미합니다. 단순히 저 두가지 필드만을 통해 저장할 수 있는 것은 아니고 FileField를 상속받아 커스텀 필드를 만들어 저장하는 것도 가능합니다.(ImageField도 내부적으로는 FileField를 상속받고 있습니다.) 다만 필드를 통해 media 파일을 저장한다고 해서 필드에 파일이 직접 저장되는 것은 아닙니다. 필드는 단지 media 파일이 저장된 경로를 저장하고 있을 뿐입니다. ​ Settings.py media 파일을 다루기 위해선 settings.py에서 몇 가지 설정을 해 주어야 합니다. ​ 1. MEDIA_URL 설정 # settings.py MEDIA_URL = "/media/" se..

Django 2021.03.23

장고(Django) - 마이그레이션(Migration)

마이그레이션(Migration)이란? 장고 공식 문서에서는 마이그레이션이 모델의 변경 내역을 DB *스키마에 적용시키는 장고의 방법이라고 설명하고 있습니다. 장고는 ORM을 사용하기 때문에 models.py와 클래스를 통해 DB 스키마를 생성하고 컨트롤 하게 되는데, 이 때 DB 스키마를 git처럼 버전으로 나눠서 관리 할 수 있게 해 주는 시스템이라 생각하시면 됩니다. 즉 하나의 마이그레이션 파일은 해당 마이그레이션이 생성된 시점의 모델의 구조(DB의 스키마)를 담고 있습니다. ​ *스키마(Schema)란? : DB 내에서 데이터가 저장되는 구조와 제약 조건을 정의한 것. 장고로 치면 하나의 어플리케이션의 models.py 파일이라고 할 수 있습니다. migration 관련 명령어 ​ 1. python..

Django 2020.11.12

장고(Django) - WSGI(Web Server Gateway Interface)

WSGI란? WSGI는 Web Server Gateway Interface의 줄임말로 파이썬의 표준 게이트웨이 인터페이스입니다. 파이썬에서의 CGI정도로 이해하시면 됩니다만 더 쉽게 생각하자면 일종의 프로토콜 처럼 생각할 수도 있겠습니다. WSGI의 역할 기본적으로 ​웹 서버 자체는 정적인 페이지 밖에 보여주지 못합니다. 우리가 인터넷에서 보는 동적인 페이지들은 웹 서버가 전적으로 처리하는 것이 아니라 웹 어플리케이션(장고, 플라스크 등으로 작성된 프로그램)의 도움으로 보게 되는 것이죠. 그렇다면 당연히 웹 서버와 웹 어플리케이션은 서로 소통을 할 수 있어야겠죠? 그래야 동적인 페이지를 만드는 데 필요한 정보를 주고 받을 수 있으니까요. 하지만 안타깝게도 아파치, Nginx 등의 웹 서버는 파이썬 코드를..

Django 2020.11.12

ORM(Object Relational Mapping)이란?

ORM이란? ORM은 Object Relational Mapping(객체 관계 매핑)의 줄임말입니다. Object(객체)는 말 그대로 OOP에서 사용되는 객체 그 자체를 의미하고 Relational(관계)는 흔히 사용하는 관계형 데이터베이스를 의미합니다. 즉 객체와 관계형DB를 매핑해주는 개념이라고 생각하시면 될 것 같습니다. 자세히 알아보기 객체랑 DB를 매핑하니 어쩌니 하니 말이 좀 복잡해보이죠? 쉽게 풀어서 설명드리겠습니다. 원래 관계형 DB를 사용하기 위해선 SQL을 사용해야했었습니다. 하지만 어플리케이션 코드짜는것도 머리아픈데 DB쿼리까지 신경쓰려면 머리가 두 배로 아프겠죠? ORM은 이런 불편함을 해소해줍니다. 파이썬(장고)으로 예를 들자면 작성한 파이썬 코드를 관계형 DB의 SQL 쿼리로 자..

Django 2020.10.20

장고(Django) - MVC패턴과 MTV패턴

MVC패턴과 MTV패턴 웹 개발을 공부하시는 분이라면 MVC패턴에 대해 한 번쯤은 들어보셨을 겁니다. MVC(Model-View-Controller)는 *디자인 패턴중의 하나로 프로젝트의 구성 요소를 Model(모델), View(뷰), Controller(컨트롤러) 세 가지로 역할에 따라 구분하는 패턴입니다. MTV(Model-Template-View)는 Model(모델), Template(템플릿), View(뷰)​로 MVC에 대응되는 장고의 디자인 패턴입니다. 이 글에서는 MVC패턴이 무엇인지, MTV패턴은 무엇이 다른지 다뤄보겠습니다. ​ (*디자인 패턴 : 효율적으로 코드를 작성하기 위한 코딩 규칙 or 프로젝트 구조 정도로 이해하시면 됩니다.)​ MVC 패턴이란? 상술했듯이 MVC는 디자인 패턴 ..

Django 2020.10.19

장고(Django) - Field lookup

Field lookup - SQL의 WHERE에 해당되는 기능 - filter, get, exclude 메소드로 얻게 되는 Queryset을 조건에 맞게 제한 - 어떤 lookup type에도 해당이 안 될 경우(Example.objects.get(id=1)) 자동적으로 exact로 적용 - 사용법은 fieldname__lookuptype (Example.objects.get(id__exact=1) - lookup의 종류는 꽤 많으니 Django documentation를 참고하시면 됩니다. QuerySet API reference | Django documentation | Django Django The web framework for perfectionists with deadlines. Overv..

Django 2020.10.09

Django란?

Django란? Django는 파이썬으로 제작된 오픈소스 *웹 프레임워크입니다. 비교적 입문이 쉬운 언어인 파이썬으로 제작되어 진입장벽이 그렇게 높은 편이 아니고(물론 파이썬 언어에 대한 이해도가 어느 정도 있어야 합니다.)특유의 높은 생산성으로 특히 스타트업에서 사랑받는 프레임워크입니다. 장고로 제작된 대표적인 사이트는 인스타그램, 핀터레스트 등이 있습니다. ​ *웹 프레임워크에 대한 개념을 잘 모르신다면 이전 게시글을 참조해주세요. 프레임워크(framework)의 개념 Framework(프레임워크)는 어떤 어플리케이션을 개발하기 위해 필요한 기본적인 클래스와 라이브러리등이 모두 포함되어있는 환경을 의미합니다. 쉽게 생각하자면, FrameWork라는 명칭에서 볼 수 있�� tibetsandfox.tis..

Django 2020.10.09
반응형