본문 바로가기
AI 웹개발반

[TIL+] 오류메세지 드디어 해결(?)

by 째깍단 2023. 4. 6.

오늘의 장고 공부로 알게된 점..

 

장고에는 flask랑 다르게 내장 기능들이 정말 많고,

알고 활용하는 것에 따라 좋은 서비스를 빠른 시간 안에 만들어낼 수 있겠다는 생각이 들었다.

 

 

 

Today's 오류메세지 01

 

..../views.py", line 20

AttributeError: 'function' object has no attribute 'objects'

 

get_user_model()

함수 ()빼먹음 아아아아아아ㅏㅏ

 

 

 

 

Today's 오류메세지 02 (사실어제부터.. 진짜 이거때매 집중도 안 되고.. 만든 거 보이지도 않고...ㅠㅠ)

 

어제부터 암호화 기능,  {% csrf_token %}이 작동하지 않는다.

 

 

장고강의 가이드를 따라 회원가입 페이지에서 등록을 하려고할때, 로그인을 하려고할 때

 

Forbidden (403) : CSRF 검증에 실패했습니다. 요청을 중단하였습니다.

Reason given for failure:  CSRF token missing.

이 에러가 나온다.    

 

html파일에서 runcode하면

Code language not supported or defined.

 

 

CSRF는 Cross-site Request Forgery.. 유효한 사이트 검증.. 사이트 간 위조 보호 요청?

그러니까 이상한 페이지 접근에서 서버/유저를 보호해주는 설정이라 없애기도 애매하다.

 

 

 

 

> 오류메시지 해결을 위해 뚠뚠...

 

 

방법1.

DB 정보충돌 문제?

db.sqlite파일을 지우고 admin설정을 다시해보니 되었다는 간증글을 보았다.

실행해보았으나 실패함.

 

 

 

방법2. 

Django 서버는 'POST' request 가 들어왔을 때 허가되지 않은 호스트의 경우 403 forbidden error를 발생시킨다고 한다

원인을 알았으니 이제 내가 허가된 접근이라고 알려주면 된다.

 

settings.py > CSRF_TRUSTED_ORIGINS 값으로 접근하는 도메인 값을 준다

 

참고한 블로그 주인장은 도메인이 있어서 그걸 사용하셨고,

개발 중이라 localhost사용하고 있는 병아리는 서버 실행 시 뜨는 http를 입력하면 된다고 한다.

Starting development server at http://127.0.0.1:5000/ 

 >> http://ip주소:포트번호 이므로 각자의 사정에 맞춤작성하면된다..

 

#허가된 호스트 접근 코드
CSRF_TRUSTED_ORIGINS = ["http://127.0.0.1:8000/"]

 

 

하지만 나의 강력한 컴퓨터님은 받아들이지 못하셨다.

그래서 튜터님께 달려감..

 

위의 CSRF 오리진에 두가지 명령어를 같이 넣어보았다.

CSRF_TRUSTED_ORIGINS = ['http://localhost:8000', 'http://127.0.0.1:8000']
# django버전 4부터..?는 http://나 https:// 를 꼭 붙여주어야 작동한다고 한다

 

하지만 작동하지 않아...

 

 

 

그래서 방법3.

 

하고싶지 않았던 예외처리를 한다...

 

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt

데코레이터를 문제를 일으키는 로그인 함수 위에 붙이면.. 완료...

 

 

 

 

이후 다른 오류가 생겨(오타 및 빼먹타 였음;;) 함께 해결해주신 튜터님... 감사합니다...

부끄럽다....'//////'

 

다른 오류들을 잡고 데코레이터를 빼보았는데

이젠 csrf_token missing오류가 아니라 cookie not set오류가 뜬당ㅋㅋㅋㅋㅋㅋㅋㅋ

진쟈.... 화가 나.....

 

 

 

대체 원인이 뭔지 진짜 모르겠다@.@

 

그래도 오류 메시지가 달라진 것에 위안을...삼아보자.........................

 

 

 

 

 

이틀만에 본 home.html페이지,,, 갬격....

 

그래도 이젠 페이지를 볼 수 있어...ㅜㅜ

 

앞으로도 Django를 계속 활용할텐데 같은 문제가 발생하지 않길 바라며.. 글을 작성하였다...