본문 바로가기

Django12

[Django] DRF - Permission Permission 어떤 콘텐츠에 대한 추가 또는 접근 관련 요청에 대해서 제한(restrictions)을 두게 하는 것 Permission의 세 종류 1st type: global permission class -> permission을 settings.py에 추가해 모든 view class에 대해서 힘을 행사할 수 있게 한다. 2nd type: object level permission → 특정 view class에 restriction 추가 several permission class: 위의 두 개의 permission level에서 사용되는 class AllowAny: anyone can access any contents IsAuthenticated: user should be allowed t.. 2022. 5. 28.
[Django] Django ORM - N+1 problem django orm은 lazy_loading 방식으로, orm에서 명령을 실행할 때마다 데이터베이스에서 데이터를 가져오는 것이 아니라 데이터를 불러와야 할 시점에 데이터베이스에 접근해서 쿼리를 실행한다. 따라서 n개의 모델을 가져오고 n개의 모델을 순회하면서 관련된 모델에 접근할 때, 데이터베이스에 다시 호출을 하게 되어 다시 쿼리를 n번 추가 수행하게 되어 문제가 발생하게 된다. 해당 문제의 해결 방안으로 Eager-Loading이 있다. Eager_Loading을 설정하면 즉각 로딩으로 설정할 수 있다. 그렇게 되면 지금 당장 사용하지 않는 데이터도 포함해 query문을 실행하기 때문에 n+1 문제를 해결하는 해결책으로 사용된다. Eager-Loading 방식으로 데이터를 불러오는 방법으로는 sele.. 2022. 4. 9.
[Django] corsheaders 보호되어 있는 글 입니다. 2022. 3. 23.
[Django] Django 초기 세팅 1. Django Project 초기 세팅 가상 환경 생성 프로젝트를 새로 생성하고 독립적인 패키지 관리를 위해서는 콘다를 이용해서 가상 환경을 만들어야 한다. 콘다가 설치되어 있다면 터미널 창에 아래의 내용을 작성하면 가상환경을 생성할 수 있다. conda create -n 가상환경이름 python=3.8 conda activate 가상환경이름 가상 환경을 만든 후에 꼭 activate를 해야 가상 환경이 실행된다. 만약 가상환경을 나가고 싶다면 conda deactivate 명령어를 사용하면 된다. database 생성 가상 환경 생성 후 사용하는 데이터베이스를 생성한다. mysql> create database 데이터베이스이름 character set utf8mb4 collate utf8mb4_ge.. 2022. 3. 12.