플라스크 서버 테스트
드디어 플라스크 서버가 구축됐다. 짝짝짝
플라스크가 정상적으로 설치되었는지 확인하기 위해 테스트 코드를 넣고 실행해봤다.
하지만 테스트를 실행한 교육용 서버에 열린 포트가 없어서 테스트해볼 수가 없었다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello World!"
app.run(host='0.0.0.0', port=81)
- @app.route(/) 어노테이션은 url 경로별로 request 를 처리해준다.
예를 들어 danal.com/ 으로 url 을 입력하면 위와 같은 가장 기본경로로 처리하게 된다. - 어노테이션으로 요청을 분류해서 바로 밑에 함수를 실행시킨다.
리스폰스로 보내주는 웹페이지에 표시될 변수가 데이터를 필요에 따라 함수에서 처리해주고,
return 에 웹페이지를 전달한다. - 지금처럼 "Hello World!"를 하게되면 그냥 텍스트만 덩그러니 떠있는 웹페이지가 보여질 것이다.
당연히 저렇게 텍스트로만 리턴하는 것은 초기 개발에만 쓰는 테스트코드이고, 보통 실제 개발할 땐 render_template() 함수를 많이 쓰게 된다. render_template( html 파일 ) 의 형태 - 이렇게 app run 을하면 플라스크 디폴트 포트인 5000 번으로 실행되는데, 5000번은 가용해서 실행은 되나 막상 접근하기는 불가능했다. (포트가 닫혀있었음)
- app.run() 내부에 여러 파라미터를 넣을 수 있다. host, port, debug, load_dotenv, **option 이 있다.
load_dotenvy? 도텐브? 뭐인가 싶은데, .env(닷 이엔브이) 를 가리키는 말이고, 가장 가까운 경로의 env 파일을 읽어와서 환경변수를 세팅하는 옵션이다. - **option 은 Flask 설치시 선행으로 필요한 모듈인 Werkzeug 서버 세부사항을 만질 수 있는 옵션이다.
근데 실행이 안된다?!
Flask - UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte
교육용 서버가 닫혀있으니, 윈도우 컴퓨터 자체로 개발을 시도했으나, utf-8 코텍 뭐시기 에러가 떴다.
찾아보니, 내 전산망 컴퓨터의 컴퓨터 이름이 "정승영 SE" 라고 되어있어서,
플라스크 서버에서 자체 서버 구성할 때 hostname 을 따오는데, 한글이 섞여 있어서 실행이 안되는 것이었다.
hostname 을 직접 변경하려면 인프라팀의 권한이 필요했다.
생각해낸 편법이 있는데, 정승영_SE 를 UTF-8 코드로 번역해서 넣어보는 것이었다.
플라스크 내장의 socket py 모듈에서 hostname 를 읽어올 때.
하드코딩으로 1%uCB15%uC2B9%uC601 SE",
즉 정승영 SE 를 UTF-8 로 번역한 값을 입력해서 주입했지만...
똑똑한 파이썬는 속아주지 않았다.....
반응형
'개발 > Python & Flask' 카테고리의 다른 글
Flask Python Threading 쓰레딩에 대해 알아보잣 (0) | 2020.11.10 |
---|---|
pymysql 사용법 및 초간단 예시! (0) | 2020.11.10 |
Python Flask Logging 사용법!! - 서버관리 필수요소 (2) | 2020.11.10 |
Python Flask CSV 파일 다루기! 초간단 3줄 예시 (0) | 2020.11.10 |
Python Sched 라이브러리 (몇초마다 반복실행) (0) | 2020.11.10 |