점프투 플라스크 질문입니다.

안녕하세요. 점프투 플라스크를 보면서 게시판을 작성중에 있습니다.
3-03 템플릿 필터를 작업중 아래와 같이 오류가 발생됩니다.

웹페이지 내용
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

오류 내용
아래와 같이 오류가 생성됩니다.
File "C:\Source\PythonStudy\WebProject\FSBM\templates\question\question_list.html", line 1, in top-level template code
{% extends 'base.html' %}
File "C:\Source\PythonStudy\WebProject\FSBM\templates\base.html", line 16, in top-level template code
{% block content %}
File "C:\Source\PythonStudy\WebProject\FSBM\templates\question\question_list.html", line 20, in block "content"
{{ question.create_date|datetime }}
File "C:\Source\PythonStudy\WebProject\FSBM\filter.py", line 2, in format_datetime
return value.strftime(fmt)

처리작업은 아래와 같이 하였는데 안되네요 ㅜ.ㅜ
https://medium.com/@onlytojay/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%82%A0%EC%A7%9C-%ED%91%9C%ED%98%84-%ED%95%9C%EA%B8%80-%EC%97%90%EB%9F%AC-44aea1ae66d8

kimo 5679

2020년 8월 29일 7:43 오후

filter.py 에서 오류가 발생한 것으로 보이네요.. 오류내용을 전부 보여주셔야 알 수 있을것 같습니다. - 박응용님, 2020년 8월 29일 10:52 오후 추천 , 대댓글
작성하신 filter.py 파일을 보여주세요. - 박응용님, 2020년 8월 29일 10:54 오후 추천 , 대댓글
@박응용님 깃에 있는 코드 내용과 같으며 깃에서 다운로드하고 돌렸는데도 똑같은 오류가 생깁니다. def format_datetime(value, fmt='%Y년 %m월 %d일 %H:%M'): return value.strftime(fmt) - kimo님, 2020년 9월 1일 5:24 오후 추천 , 대댓글
@kimo님 위에 표시된 오류내용이 전부인가요? 전체 오류 trace 를 공유해 주시면 좋겠습니다. - 박응용님, 2020년 9월 2일 12:27 오전 추천 , 대댓글
@박응용님 트레이스 달았습니다. - kimo님, 2020년 9월 4일 2:25 오후 추천 , 대댓글
목록으로
5개의 답변이 있습니다. 1 / 1 Page

저도 스크립트는 UTF-8 이지만 같은 문제가 발생하여 return 값에 encode, decode 처리를 하니 문제가 해결되었습니다.

filter.py 파일을 아래와 같이 내용을 변경하니 한글로 잘 출력되네요.

def format_datetime(value, fmt="%Y년 %m월 %d일 %H:%M"):
    return value.strftime(fmt.encode('unicode-escape').decode()).encode().decode('unicode-escape')

kss99322038

M 2020년 10월 29일 1:11 오후

감사합니다 :) - kimo님, 2020년 11월 9일 1:33 오전 추천 , 대댓글
@kimo님 감사합니다. 이것으로 문제 해결 되었네요. 자꾸 에러 나서 작동이 안되었는데 또 한번 배워 갑니다. - soojinchoo님, 2022년 9월 6일 11:41 오전 추천 , 대댓글

trace 공유 합니다.
Traceback (most recent call last):
File "c:\source\pythonstudy\venv\lib\site-packages\flask\app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "c:\source\pythonstudy\venv\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "c:\source\pythonstudy\venv\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "c:\source\pythonstudy\venv\lib\site-packages\flask_compat.py", line 39, in reraise
raise value
File "c:\source\pythonstudy\venv\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "c:\source\pythonstudy\venv\lib\site-packages\flask\app.py", line 1935, in dispatch_request
return self.view_functionsrule.endpoint
File "C:\Source\PythonStudy\WebProject\FSBM\views\question_views.py", line 20, in _list
return render_template('question/question_list.html', question_list=question_list)
File "c:\source\pythonstudy\venv\lib\site-packages\flask\templating.py", line 140, in render_template
ctx.app,
File "c:\source\pythonstudy\venv\lib\site-packages\flask\templating.py", line 120, in _render
rv = template.render(context)
File "c:\source\pythonstudy\venv\lib\site-packages\jinja2\environment.py", line 1090, in render
self.environment.handle_exception()
File "c:\source\pythonstudy\venv\lib\site-packages\jinja2\environment.py", line 832, in handle_exception
reraise(*rewrite_traceback_stack(source=source))
File "c:\source\pythonstudy\venv\lib\site-packages\jinja2_compat.py", line 28, in reraise
raise value.with_traceback(tb)
File "C:\Source\PythonStudy\WebProject\FSBM\templates\question\question_list.html", line 1, in top-level template code
{% extends 'base.html' %}
File "C:\Source\PythonStudy\WebProject\FSBM\templates\base.html", line 16, in top-level template code
{% block content %}
File "C:\Source\PythonStudy\WebProject\FSBM\templates\question\question_list.html", line 20, in block "content"
{{ question.create_date|datetime }}
File "C:\Source\PythonStudy\WebProject\FSBM\filter.py", line 2, in format_datetime
return value.strftime(fmt)
UnicodeEncodeError: 'locale' codec can't encode character '\ub144' in position 2: encoding error
127.0.0.1 - - [03/Sep/2020 02:06:30] "?[35m?[1mGET /question/list/ HTTP/1.1?[0m" 500 -

kimo

2020년 9월 3일 2:11 오전

웹페이지 오류메시지는 아래 와 같으며 혹시나해서 깃허브에서 3-03이후 내용에는 아래와 같은 오류가 발생됩니다.(03-02는 이상없습니다.)
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

kimo

M 2020년 9월 3일 5:11 오후

올려주신 트레이스를 보니 UnicodeEncodeError 오류가 발생했네요.
아마도 filter.py 파일의 인코딩이 UTF-8 이 아닌 다른 인코딩으로 되어 있을것 같네요.

파이참을 사용하신다면 우측하단에서 파일 인코딩을 UTF-8로 변경하실 수 있습니다.
다음 그림을 참고하세요.

Imgur

박응용

2020년 9월 4일 4:55 오후

UTF-8인데 안되네요 ㅜ.ㅜ

kimo

M 2020년 9월 6일 1:17 오전

filter.py 파일을 여셨을때도 UTF-8 인거죠? UnicodeEncodeError 이기 때문에 한글을 사용한 파일에서 문제가 있습니다.. filter.py 에서 년, 월, 일을 한글대신 영문으로 바꾸었을때도 오류가 나는지 확인해 보세요.. - 박응용님, 2020년 9월 6일 8:41 오전 추천 , 대댓글
@박응용님 년, 월, 일을 한글대신 영문을 수정하여 되었습니다. 감사합니다. :) - kimo님, 2020년 9월 7일 2:29 오전 추천 , 대댓글