반응형

웹브라우저에 Hello, World!를 출력하는 Flask 예제코드입니다.



Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. 

https://flask.palletsprojects.com/en/2.0.x/quickstart/ 

 

부족한 부분이나 이상한 부분이 있을 수 있습니다. 

 

개발 환경 구축은 다음 포스트를 참고하세요

 

Windows 10 환경에서 Visual Studio Code와 Miniconda를 사용한 Flask 개발 환경 만들기

https://webnautes.tistory.com/1522 

 

Miniconda를 설치하지 않고  pip install flask 명령으로 해도 상관은 없습니다.




2021. 10. 9 - 최초작성 



hello.py

from flask import Flask

app = Flask(__name__)
print(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"



flask 모듈의  Flask 클래스를 임포트하여 __name__을 아규먼트로하여 Flask 클래스의 인스턴스를 생성하는 것으로 시작해야 합니다.

Flask가 템플릿 및 정적 파일과 같은 리소스를 찾을 위치를 알기 위해 필요합니다.

 

__name__은 모듈 이름을 저장하고 있습니다. 

print문을 사용하면 터미널에 __name__의 값을 출력해보면  파일 이름인 hello가 출력됩니다.

 

route() 데코레이터(decorator)를 사용하여 어떤 URL을 웹브라우저에서 접속시 이  함수를 실행할지 Flask에 알립니다.

여기에선 루트를 접근하면 hello_world 함수가 실행되어 Hello, World!가 웹페이지에 출력됩니다. 



hello_world 함수는 웹브라우저에 표시하려는 메시지를 반환합니다. 여기에선  HTML 문자열을 리턴하고 있고 브라우저에서 렌더링되어 화면에 표시됩니다. 




Flask 자체와 충돌할 수 있으므로 파일 이름을 flask.py로 하지마세요. 



FLASK_APP 환경 변수에 실행할 파일 이름을 대입해준 후, flask 명령으로 실행할 수 있습니다. 



사용하는 환경에 따라 FLASK_APP 환경 변수를 지정하는 방법에 차이가 있습니다. 

파일 이름이 app.py 또는 wsgi.py인 경우 FLASK_APP 환경 변수를 설정할 필요가 없습니다.



Ubuntu BASH

 

$ export FLASK_APP=hello

$ flask run



Windows 명령 프롬프트(cmd.exe)

 

> set FLASK_APP=hello

> flask run



Windows PowerShell

> $env:FLASK_APP = "hello"

> flask run




flask run을 실행하면 테스트에 사용할 수 있는 내장 서버를 동작시켜줍니다. 

실행 후 로그에 다음과 같은 접속 가능한 URL이 출력됩니다. Ctrl + 클릭으로 웹브라우저에서 접속하도록 할 수 있습니다. 

 




서버를 실행하면  현재 사용중인 컴퓨터에서만 액세스 가능합니다.

 

디버거를 비활성화했거나 네트워크의 사용자를 신뢰하는 경우 명령줄에 --host=0.0.0.0을 추가하기만 하면 서버를 외부에서도 사용할 수 있습니다.

 

$ flask run --host=0.0.0.0

 

반응형

해본 것을 문서화하여 기록합니다.
부족함이 있지만 도움이 되었으면 합니다.


포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">