ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 플라스크(Flask) ; 로컬 서버 실행
    개발/python 2016. 8. 28. 01:26

     플라스크에 대해 설명 드리면서 예제로 항상 app.run() 함수를 이용했었습니다.

     그렇지만, 아마 코드를 실행시켰던 PC가 아닌 다른 호스트에서 접속하려면 접속이 되지 않았을 것입니다. 따로 IP를 설정해주지 않아도 로컬 IP 주소인 127.0.0.1로 자동으로 접근되기도 하기때문에 별 신경을 쓰지 않았습니다.


     그렇지만 만약 다른 호스트에서 접근하고자 한다면 app.run() 함수에 host 인자를 넘겨주면 됩니다. 또한 네트워크를 '0.0.0.0'으로 지정하면 어떤 호스트에서도 연결 가능합니다.


    app.run(host='0.0.0.0')


     이외에도 run() 함수는 debug라는 인자를 가집니다. 기본값은 False 이며, 이름과 마찬가지로 디버그 정보를 보여주느냐 마느냐 여부를 결정하는 인자입니다. 아래와 같이 사용할 수 있습니다.


    app.run(host='0.0.0.0', debug=True)


     만약 위와 같이 코드를 작성하고 서버를 시작해 보면 아래와 같은 콘솔 창을 확인하실 수 있습니다.



     그리고 아래쪽 화면이 debug 인자를 주지 않았던 이전의 상태입니다.



     몇 줄이 더 추가되었음을 알 수 있죠?

     그리고 예를 들어 hello.py 파일을 수정하고 진행해보면 아래와 같은 문구를 콘솔에서 확인하실 수 있을 것입니다.



     어렵지 않게 디버깅 내용을 읽으실 수 있으리라고 생각됩니다. 제가 수정한 hello.py가 수정되어 리로딩한다는 내용이 출력됨을 알 수 있습니다. 이제 파일을 수정하더라도 별도로 서버를 재기동하지 않고 리로딩이 가능하게 되었습니다.


     대신 디벅깅 모드에서는 에러 발생이 이루어지면 브라우저 창에서 에러 소스코드를 모두 보여줄 뿐만이 아니라 임의의 코드 실행이 가능해지는 등 치명적인 노출이 이루어지고 맙니다. 그러니 개발시에는 디버깅 모드로 진행하되 외부에 노출할 때에는 반드시 디버깅 모드를 끄고 진행하시기를 권고드립니다.

    댓글

Designed by Tistory.