내일배움캠프/내일배움캠프 TIL

내일배움캠프 TIL 32일차

sogummi 2023. 4. 26. 00:23

Today I Learned

1. Django에서 .env파일을 통한 시크릿 키 처리
- 장고 프로젝트 생성 시 메인폴더에 있는 settings.py에 SECRET_KEY가 있다.
- SECRET_KEY가 노출될 시 Django의 보안기능이 상실될 수 있기 때문에 github에 push할 때 올라가지 않도록 설정해주어야 한다. 그렇지 않으면 Github에서 메일이 날라올 수도..!

다음은 .env파일을 통해 시크릿 키를 처리하는 방법! (고수님의 도움) 

(1) pip install python-dotenv 
(2) .env파일을 manage.py(루트 디렉토리)와 같은 경로에 만들어주어야 한다.

-> 터미널에서 ls명령어를 통해 manage.py위치를 알 수 있다. 

(3) settings.py에 있는 SECRET_KEY값을 넣어준다.

.env파일

(4) settings.py에서 .env파일을 읽기
(5) settings.py에서 읽어들인 .env파일에 있는 SECRET_KEY를 불러오기 

settings.py

원래 settings.py의 SECRET_KEY에는 .env파일에 들어있는 키 값이 들어있었고, 위 사진처럼 설정해주면 끝 

.env파일을 읽고 env파일에 들어있는 키 값을 불러오도록 하려면
from os import environ
import dotenv

dotenv_file = dotenv.find_dotenv()  // 루트 디렉토리의 환경변수 파일을 찾는 명령어
dotenv.load_dotenv(dotenv_file) 

SECRET_KEY에 environ.get("SECRET_KEY")

입력 

(6) .gitignore 파일에 .env파일 추가 

위와 같이 회색빛(?)으로 적용되면 gitignore가 적용되었다는 의미!  

 

2.  @classmethod와 := 바다코끼리 문법.. 그리고 **kwargs, *args..  

@classmethod에 궁금해서 갔다가 얻어온 꿀 정보.. 
class(self)처럼 classmethod는 (cls)로 자기자신을 전달받는다.
또한 classmethod를 사용하면 클래스를 인스턴스화 하지 않아도 함수를 호출할 수 있다. 
나중에 따로 포스팅 작성할것 

3. Serializermethod()함수의 활용!
요것도 저번에는 조금 덜 이해했는데 완전 이해했다. 실제로 응용을 해보니 확실히 개념이 잡히는 것 같다.

 

- 개인과제 기초 세팅, ERD, API설계, 로그인, 회원가입 구현은 했고 내일 todo랑 추가기능 구현해볼 것 
- 블로그에 더 신경쓰자