상세 컨텐츠

본문 제목

221205 프로젝트 진행(로그인 확인 이메일 전송 오류)

카테고리 없음

by hunss 2022. 12. 5. 20:06

본문

사용자가 로그인 할 때 이메일로 인증하는 기능을 추가하려고 한다.

대략적인 방법인 urls나 views는 이 블로그를 참고했음.

 

https://velog.io/@kjyeon1101/%EC%9E%A5%EA%B3%A0-%EC%9D%B4%EB%A9%94%EC%9D%BC-%EC%9D%B8%EC%A6%9D%ED%95%98%EA%B8%B0-%EC%9D%B4%EB%A9%94%EC%9D%BC-%ED%85%9C%ED%94%8C%EB%A6%BF

 

[Django] 이메일 인증하기 (+이메일 템플릿)

dj-rest-auth의 편리함에 감동먹음.. 개쩐다!!!!저번 포스팅에서 쓴 장고에서 이메일을 보내기 위한 설정값들에 이어서, 회원가입을 할때 이메일 인증 과정을 거치도록 나머지 설정들을 쓴다.유저가

velog.io

 

하지만 저 블로그에서 알려준 대로 한다면 밑에와 같은 오류가 뜬다.

해결 한 후에 보면 당연한 오류지만, 당장에는 왜 뜨는지 당연히 모름.

오류를 해석하면 인증이 필요하다고 뜨는데, 나는 settings에 EMAIL_HOST_USER 와 EMAIL_HOST_PASSWORD를 집어넣어놨음에도 왜 오류가 뜰까? 라고 생각했음.

이렇게 작성이 되어있었고, print(EMAIL_HOST_USER)를 해보니 none이 뜨더라. 그 후 코드를 보니 os.environ.get으로 되어있는게 뒤늦게 보였음.

생각해보면 environ.get 으로 가져오는데 거기다가 이메일과 비밀번호를 직접 넣어놓으니 당연히 못읽지.

그래서 가상환경 세팅(.env)를 했음

pip install django-dotenv 로 가져오려고 했음.

import dotenv

if __name__ == '__main__':
    dotenv.read_dotenv()
    main()

env를 작성하고 manage.py에 위에와 같은 코드를 쓰면 밑에 오류가 뜸

 

cp949? encoding 에러? 그래서 dotenv.read_dotenv(encoding='utf8') 을 해보면 dotenv() 안에는 저걸 못넣는다네?

해결책은

from dotenv import load_dotenv 를 통해 load_dotenv 를 불러오고

이렇게 작성했다. 오류 해결.