분류 전체보기 (27) 썸네일형 리스트형 DRF credentials 메소드 사용법 credentials 메소드는 모든 후속요청에서 사용될 헤더로 세팅해준다. from rest_framework.authtoken.models import Token from rest_framework.test import APIClient # Include an appropriate `Authorization:` header on all requests. token = Token.objects.get(user__username='lauren') client = APIClient() client.credentials(HTTP_AUTHORIZATION='Token' + token.key) credentials 를 사용한 뒤의 모든 리퀘스트에는 credentials 로 설정한 헤더가 계속 유지되는데 이를 해제.. VPC IP주소 범위를 나누는 단위와 AWS 서브넷 설정 CIDR 블록 vpc의 ip주소 범위를 나누는 단위다. ip주소를 나누는 대표적인 이유는 2가지. 역할분리: 외부에 공개하는 리소스 여부를 구별한다. 예를 들어, load balancer는 외부공개가 목적이므로, 외부에서 접근할 수 있어야하는 리소스다. 반대로 DB서버는 VPC내부 서버에서의 사용을 전제로 하므로 외부에서 공개되어는 안 된다. 이러한 규칙을 리소스마다 개별적으로 할당하지 않고 리소스가 포함된 그룹 전체에 대해 할당하면 설정 누락 등을 피할 수 있다. 여기서 말하는 그룹이 서브넷이라고 할 수 있고, 서브넷 안에 속해있는 리소스들에게 외부공개냐, 내부에서만 사용할 수 있냐를 정할 수 있는 것이다. ex) public subnet, private subnet 기기분리: AWS 안에서의 물리적인 이중화(다중화.. django fixture dumpdata 장고를 통해 db의 데이터를 추출 가능하다. 터미널에서 아래의 커맨드를 사용하면 된다. python manage.py dumpdata --indent=4 --output=a/api_model.json api.model --indent 는 들여쓰기를 추가해준다. 4라고 입력하면 tab 한번에 크기가 4인 공백을 사용하게 된다. 옵션을 안주면 single line으로 dump되니까 되도록 쓰는 게 보기 편하다. --output 은 dump한 데이터를 파일로 저장할 때 사용한다. 옵션을 주지 않으면 standardout으로 출력된다. a/api_model.json 처럼 상대경로로 현재 위치에서 a 디렉토이 안에 파일이름을 지정해서 저장할 수 있다. 그리고 같은 위치에 같은 커맨드를 실행하면 파일을 덮어쓴다. .. Python에서 super() 함수의 이해 super()를 호출해서 리턴되는 임시객체는 클래스 메소드처럼 부모 클래스의 메소드만을 호출할 수 있도록 해주는 proxy 객체다. 이때 부모 클래스의 인스턴스는 생성되지 않는다. 부모 클래스의 인스턴스(a=Animal()했을 때 생성되는 a, 즉 인스턴스)와 super()를 호출했을 때 생성되는 임시객체는 다음과 같은 차이점이 있다. 임시객체는 super()로 호출된다. 즉, 자식 클래스를 정의한 코드 안에서만 반환하도록 되어있다. 내부적으로 파이썬이 method resolution order(MRO)를 구현하기 위해 사용된다,(MRO는 들어는 봤지만 아직 공부하지 않았기 때문에 찾아보도록 한다.) 클래스의 인스턴스는 인스턴스 메소드에 접근할수 있지만 임시객체는 클래스 그 자체(class Animal:.. DRF json으로 null이 올 경우, required 옵션 설정을 통해 대처하는 방법 DRF를 사용하는 웹서버에 json으로 null을 보내면 파이썬은 None으로 인식한다. DRF나 django에서 CharField와 TextField는 django convention을 따르면 null=True 와 blank=True 를 동시에 사용하지 말고, blank=True 만 적용하라고 되어있다. 두 개 다 동시에 사용하면 데이터베이스에 empty string(’’ 혹은 “”)과 null 이라는, 타입이 다른 빈 값이 공존하게 되기 때문이다. json에 null이 왔을 때는 위의 옵션으로만 대처가 가능하지만 serializer field로 명시되어 있는 attribute가 json에 포함되어 있지 않을 경우, required 옵션을 사용하면 된다. required 옵션은 명시적으로 지정하지 않으.. AWS cil 사용해서 퍼블릭 키를 확인하는 방법 aws ec2 describe-key-pairs -key-pair-names "key name" --include-public-key 를 하면 aws ec2의 key-pair에 등록한 키의 퍼블릭 키를 확인 할 수 있다. 하지만 --include-public-key 를 했을 때 not found error가 발생하는 경우가 있다. 이럴 때는 aws cli의 버전을 확인해서 버전을 업데이트해줘야 한다. asdf로 버전관리를 하고 있을 경우 아래의 커맨드로 간단하게 업데이트 할 수 있다. # .tool-versions에 먼저 awscli의 버전을 기입해줘야한다. asdf install awscli 2.9.22 Django CharField editable editable이 False면 admin 또는 다른 ModelForm에서 해당 필드는 나타나지 않는다. model validation에서도 스킵된다. Default는 True다. first_name = models.CharField(max_length=150, editable=False) Reference https://docs.djangoproject.com/en/4.1/ref/models/fields/ Django Django 데이터베이스 mysql 설정하기 Django setting mysql collation에 대해서는 각 모델의 프로퍼티를 설정할 때 마다 지정해줘야하는 것같다.. 그러므로 데이터베이스를 처음 만들 때 지정해주자. CREATE DATABASE my_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 그렇지 않으면 migration파일에서 RunSQL 을 사용해서 collation을 바꿔주는 방법도 있다. 처음부터 database를 만들 때 위의 커맨드로 collation을 지정해줬기 때문에 settings.py에는 아래와 같이 설정했다. django-envrion 패키지를 사용해서 .env file에 설정을 별도로 지정해줬다. # settings.py DATABASES = { "default": .. 이전 1 2 3 4 다음 목록 더보기