Flask 실행시 메시지가(Serving Flask app "app" (lazy loading) ) 라고뜸
- 아래 메세지는 서버가 동작하고 있다는 것과 서버의 상태를 알려주는 기본 메시지. 이런 것을 서버의 기록이라고 해서 서버 로그 server log 라고 부르기도 함.
- 에러 상태가 아니라 Flask 의 동작상태를 알려주는 것이니 별 다른 부분을 수정하지 않았다면 Flask 를 실행할 때마다 뜬다고 생각하면 됨.
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://0.0.0.0:5000/ 또는 숫자로 된 주소 (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 고유한 핀번호
Flask 실행에서 index.html 파일이 제대로 뜨지 않음
(jinja2.exceptions.TemplateNotFound에러 포함)
1. chrome 을 새로고침
2. jinja2.exceptions.TemplateNotFound 에러라면: 정해진 위치에 index.html 이 없다는 오류
- flask 는 templates 폴더 안에 index.html 파일이 있어야 정상적으로 동작함
- 체크리스트:
(윈도우즈) 플라스크 시작하기에서 에러남
(UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte)
- (윈도우즈) 경로에 한글이 있으면 에러가 날 때가 있음. 윈도우즈 사용자 이름을 영어로, 아래 블로그 참고
설정을 바꾼 후 컴퓨터 리부팅
- https://gbworld.tistory.com/1210
- (windows8 일 경우는 https://mainia.tistory.com/3940)
2. 윈도우즈 사용자명을 바꾼 후에도 에러 메시지의 경로에 한글 사용자명이 그대로 보인다면
새로운 윈도우즈 사용자를 영어로 추가(사용자명에 관리자 권한 주기 포함).
새로 만든 사용자를 개발할 때 사용하는 계정으로 쓰면됨
- 윈도우즈 사용자 추가 https://support.microsoft.com/ko-kr/windows/windows-10에서-로컬-사용자-또는-관리자-계정-만들기-20de74e0-ac7f-3502-a866-32915af2a34d
*로컬 사용자 계정을 관리자 계정으로 변경 까지 진행.
실행시 Error: [Errno 48] Address already in use 라는 메시지가 뜸
- 해당 port 번호를 다른 프로세스(어떤 프로그램)이 이미 사용하고 있기때문.
주차장 한 칸에 하나의 자동차만 있어야 하는 것처럼!! - app.py 에 아래처럼 기본값으로 적혀있다면, 5000 포트를 사용하고 있다는 뜻이므로
기존에 5000 포트를 사용하고 있는 프로세스를 종료시키고 내 서비스를 5000포트에 띄워줘야함
port=5000 => 5000 포트를 사용
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
▶ 방법1. 기존에 사용되고 있던 프로세스를 종료시키기 - pycharm 에서
Pycharm 하단 run 화면 창에서 빨간색으로 서버 실행되고 있다는 메시지(로그)가 뜨고 있다면
좌측에 있는 stop 버튼을 클릭. 만약 pycharm 이 갑자기 종료되어서 이 방법을 사용할 수 없다면 방법 2!
▶ 방법2. 기존에 사용되고 있던 프로세스를 종료시키기 - 터미널에서
(Mac). 특정 포트 (flask의 5000)을 사용하는 프로세스 종료할 때 사용하는 방법
https://thswave.github.io/mac/2015/05/10/mac-port-kill.html
lsof -n -i4TCP:5000 | grep LISTEN
이 명령어로 출력되는 두번째 값(네 자리 숫자)인 process_id(pid) 를 넣어서 프로세스를 종료
kill -9 pid값
Flask 에서 css, html, Js 파일을 분리했는데 화면이 잘 보이지 않는경우 (화면보기로 띄웠을 때는 제대로 띄워지는데 app.py 를 통해서 실행시켰을 때 오류 나는 경우)
Flask서버에서 html, css, js를 잘 가져와지도록 설정.
깨지는 부분은 아마 css나 js를 flask서버 static 폴더에 넣어두지 않아서 그럴 가능성이 높음
아래 링크를 참고
https://exchangeinfo.tistory.com/65
Flask 실행 시 (IndentationError: expected an indented block) 에러가 뜨면서 실행되지 않음
해당 오류는 코드에서 들여쓰기 할 때 탭과 스페이스를 섞어서 사용하게 되면 발생
tab 키로 한 띄어쓰기와 스페이스바를 이용한 띄어쓰기는 우리 눈에는 똑같아 보이지만 실제로 컴퓨터가 해석하는 방식이 다르기때문!
빨간색으로 된 오류출력 코드 끝에 File “~~\\app.py”, line 13 ^ 으로 표시된 곳을 보면 app.py 파일의 13번째 줄의 코드에서 오류가 발생했다 것을 알 수 있음
👉 오류가 발생한 줄의 코드를 지웠다가 들여쓰기 시에는 탭으로 작성해주기!
(mac) Flask 실행 후Error: [Errno 48] Address already in use 라는 메시지로 프로세스 종료 및 kill 명령어로 종료해도 동일한 현상이 나타남
021년 10월 25일부터 macOS 몬테레이로 업그레이드+릴리즈 되면서 포트 5000번을 쓰게됨
- 단순한 해결방법: 포트번호 5000번 말고 다른 번호로 변경
- airplay를 끄기 https://medium.com/pythonistas/port-5000-already-in-use-macos-monterey-issue-d86b02edd36c
'ETC > FLASK' 카테고리의 다른 글
Flask_API GET/POST 요청 / 요청확인 코드 (0) | 2022.05.20 |
---|