• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

http://localhost:8080/blog/test_blog 실행오류

21.04.14 22:45 작성 조회수 169

1

View 와 ABTest 기능 구현하기

3분 6초 내용입니다.

07_flask_ABTest_Practice_DB 폴더를 수정없이

( 아랫부분만 수정하였습니다)

MYSQL_CONN 에서

user 부분과

passwd 부분을

제아이디와 비번으로 바꾸었습니다.

--------------------

서버실행하고 나서 

http://localhost:8080/blog/test_blog 

해당 페이지를 접속을 하면

(port를 8081 도 해보고, 8082도 해보았습니다)

아래와 같은 오류가 납니다...

TypeError
TypeError: key: expected bytes or bytearray, but got 'NoneType'

Traceback (most recent call last)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_cors\extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_cors\extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\inflearn\00_projects\07_flask_ABTest_Practice_DB - 복사본\blog_view\blog.py", line 26, in test_blog
return render_template('blog_A.html')
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\templating.py", line 136, in render_template
ctx.app.update_template_context(context)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 838, in update_template_context
context.update(func())
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\utils.py", line 379, in _user_context_processor
return dict(current_user=_get_user())
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\utils.py", line 346, in _get_user
current_app.login_manager._load_user()
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\login_manager.py", line 329, in _load_user
user = self._load_user_from_remember_cookie(cookie)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\login_manager.py", line 366, in _load_user_from_remember_cookie
user_id = decode_cookie(cookie)
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\utils.py", line 63, in decode_cookie
if safe_str_cmp(_cookie_digest(payload, key=key), digest):
File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\utils.py", line 354, in _cookie_digest
return hmac.new(key, payload.encode('utf-8'), sha512).hexdigest()
File "C:\ProgramData\Anaconda3\Lib\hmac.py", line 153, in new
return HMAC(key, msg, digestmod)
File "C:\ProgramData\Anaconda3\Lib\hmac.py", line 48, in __init__
raise TypeError("key: expected bytes or bytearray, but got %r" % type(key).__name__)
TypeError: key: expected bytes or bytearray, but got 'NoneType'
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.

You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:

dump() shows all variables in the frame
dump(obj) dumps all that's known about the object

선생님께서 올려주신 코드를 수정하지 않고 

그대로  실행했는데도 오류가 나는 이유는 무엇일까요

 google 에서 검색도 해보고

몇날 몇일을 고민하다 진도를 나갈수가 없고, 해결이 안되서 질문드립니다.

답변 1

답변을 작성해보세요.

0

안녕하세요. 코딩쉽다고속아서공부하는사람님의 마음을 이해할 수 있어서, 저도 한참을 봤지만,

솔직히 보여주신 에러만으로는 힌트라도 찾을 수가 없네요.

제 생각에, 프로젝트가 단계별로 되어 있으니까요. 각 단계별로 새롭게 다운받아서, 테스트를 해본 다음, 

에러가 나는 단계의 전단계 프로젝트에, 에러가 나는 단계의 코드를 조금씩 추가해서, 실행해보면서,

어떤 부분에서 에러가 나는지를 찾아보시면 어떨까해요.

이 과정이 처음이시면 쉽지는 않겠지만, 그렇게 하면서 좀더 이해도를 높이고, 관련 부분에 익숙해지지 않을까 생각이 듭니다.

마지막으로 다음 '궁금한 점에 대한 답변 찾기 꿀팁' 글도 읽어보시면, 훨씬 도움이 되실 것 같습니다.
궁금한 점에 대한 답변 찾기 꿀팁!
궁금한 부분이 있거나, 문제가 있을 때, 항상 google.co.kr 에서 질문에 대해 검색해보세요! (아직까지는 네이버?로 검색하는 개발자는 없습니다.)
에러 메시지는 맨 마지막 라인을 복사해서 구글에서 검색해보시고, 질문에 대해서는 질문 관련 키워드들을 조합해서 구글에서 검색해보세요. 개발자들은 모두 이를 통해, 답변을 얻습니다. 한발짝 나아 가시려면, 반드시 이런 연습이 꼭 필요합니다.
저는 한가지 확인이 필요한 사안을 위해, 20 ~ 30분 검색과 10개 이상의 블로그를 찾아보는 일을 하루에도 한두번씩 한답니다.
검색이 처음이신 분들은 개발자를 위한 정보 검색 팁을 참고하시면 훨씬 성장하시는데 도움이 되실 것입니다.
두번째, 각 강의마다, 다른 분들께서도 이미 질문하신 사항들이 있습니다.
해당 부분을 확인해보시면, 답변을 기다릴 필요 없어서, 훨씬 도움이 되실 것 같습니다.
세번째, 각자 작성하신 코드 에러의 경우는
제가 제공해드린 코드자료를 수정하지 않고, 단계별로 그대로 실행해보신 후, 해당 코드와 자신의 코드가 어떤 부분이 다른지를 단계별로 확인해보시면, 훨씬 좋습니다.
키보드로 그대로 따라 치시기 보다, 제공해드린 코드를 그대로 복사해서 붙여넣고 테스트를 해보시면 좋고, 여기에서 자신의 코드와 다른 부분을 최대한 작게 쪼개서 조금씩 넣어보시면서, 테스트를 해보시면 가장 좋습니다. 각자 코드를 작성하신다면, 이렇게 작업해보시면 훨씬 도움이 되실꺼예요.
마지막으로, 질문하실 경우에는 어느 강의 영상의 어느 구간(가능하다면 몇분 몇초)에 대해 질문하시는 것인지 꼭 명기해주시면 좋습니다.
그래야 맥락이 이해가 가서, 보다 좋은 답변할 수 있습니다. 만약 구간 명기가 가능하지 않다면, 강의 영상 외적인 문의인지에 대해 확인 부탁드립니다. 본 질문 답변란은 강의 영상 이해를 돕기 위한 자리입니다. 강의 영상 외적인 부분은 양해를 부탁드립니다. 특히 극히 일부 개인별 코드 리뷰나 기능 구현등 무리가 되는 요청을 하시는 분들도 계셨는데, 좋은 강의가 선순환될 수 있도록 부탁드립니다.
잔재미코딩 Dave Lee 드림

가후님의 프로필

가후

질문자

2021.04.15

잔재미코딩님 답변 감사드립니다.

잔재미코딩님 때문에 코딩 포기하지않고, 공부하고 있습니다!!

늘감사 드리는 마음으로 공부하고 있어요

오류 꼭 찾아서 해결하고, 진도 나가 보겠습니다!

탈웅님의 프로필

탈웅

2021.07.21

안녕하세요! 저도 같은 오류로 구글링 하다 찾아서 댓글달아봅니다!
해당 오류는 blog_abtest.py 에서 app.secure_key 를 app.secret_key로 바꾸시면 됩니다!

가후님의 프로필

가후

질문자

2021.07.23

탈웅님 감사합니다 사실 포기 하고있었는데..

기존에 공부하던걸 지워서 다시 처음부터 해봐야 하네요

다시 도전해보겠습니다! 너무 감사드려요

건강하시고, 하시는일 잘되시길 기원합니다!

가람님의 프로필

가람

2021.10.21

탈웅님 감사합니다~!