말랑말랑제리스타일

구름 IDE에서 Flask로 Hello world 찍어보기 본문

프로그래밍/파이썬

구름 IDE에서 Flask로 Hello world 찍어보기

제리제리 2023. 6. 23. 08:52

구름 IDE에서 장고 프로젝트를 만들고 프로그래밍계의 만국 공통어 Hello World를 찍어봤는데요. 이게 생각보다 까다로워서 Flask 프로젝트를 만들고 Hello World를 찍어봤습니다.

구름 IDE에서 Flask 프로젝트 만들기

일단 파이썬 프로젝트 만들고 Flask를 설치해서 진행하는 방법도 있겠지만 최대한 모든 순서를 간단하게 진행하도록 하겠습니다.

먼저 구름 IDE에서 새 컨테이너 만들기를 클릭해 주고 이름과 설명을 입력해 줍니다. 저는 HelloFlask라고 이름 짓겠습니다.

다음으로 다른건 건들지 말고 소프트웨어 스택에서 Flask를 선택해 줍니다.

구름 IDE 소프트웨어 스택
구름 IDE 소프트웨어 스택

뭐 My SQL이나 몽고 DB를 이용해도 되겠지만 굳이 Flask에서 Hello World를 찍어보는 과정에서는 필요 없을 것 같으니 다른 건 전부 그대로 두겠습니다.

그리고 컨테이너 생성을 하면 Flask 프로젝트가 하나 만들어집니다.

일단 장고에 비해 Flask가 상당히 가벼운 프레임워크다 보니 생성과 실행이 훨씬 빠르네요.

Flask 프로젝트의 구조 확인과 실행 테스트

반응형

이제 Flask 프로젝트가 생성되었으니 구조를 한번 보고 실행 테스트를 해봅시다.

Flask 프로젝트 기본 구조
Flask 프로젝트 기본 구조

일단 Flask 프로젝트의 구조를 보면 상당히 간단하죠.

Readme 파일은 넘어가고 application.py 파일 하나밖에 없습니다.

확실히 장고보다는 Flask가 접근하기가 훨씬 쉬운 프레임워크인 것 같습니다.

application.py 파일을 한번 열어봅시다.

from flask import Flask
import sys
application = Flask(__name__)


@application.route("/")
def hello():
    return "Hello goorm!"


if __name__ == "__main__":
    application.run(host='0.0.0.0', port=int(sys.argv[1]))

이런 기본 소스가 있네요. 척하면 척하는 느낌으로 흝어보면 Hello goorm이라는 문구를 출력하는 코드가 이미 들어있는 것 같습니다.

자 그럼 실행해 보겠습니다.

바로 실행 버튼을 누르면 마지막 줄에서 Index Out of range 에러가 발생합니다.

sys.argv 리스트가 비어있기 때문이죠.

자 상단 메뉴의 컨테이너 - 실행 url과 포트로 들어가 봅시다.

구름 IDE 실행 url과 포트 화면
구름 IDE 실행 url과 포트 화면

다른 건 신경 쓸 필요 없고 포트를 80번으로 실행하면 될 것 같죠.

자 소스로 돌아와 줍니다.

from flask import Flask
import sys
application = Flask(__name__)


@application.route("/")
def hello():
    return "Hello goorm!"


if __name__ == "__main__":
    application.run(host='0.0.0.0', port=80)

원래 소스 마지막 줄의 port를 80으로 잡아줍니다.

그리고 다시 실행 버튼을 눌러줍니다. 그러면 밑에 에러가 없이 서비스 시작 문구가 뜹니다.

그러면 실행 좌측의 미리 보기 버튼을 눌러 작업 환경에서 미리 보기 해줍니다.

그럼 Hello goorm!이라는 문구가 보일 텐데요.

Flask에서 Hello world 찍어보기

반응형

이제 Flask에서 Hello world라는 문구를 띄워보겠습니다. 여기까지 오신 분들 중 감을 잡은 분들도 많겠지만 간단히 문구만 바꿔줄 겁니다.

from flask import Flask
import sys
application = Flask(__name__)


@application.route("/")
def hello():
    return "Hello world!"

if __name__ == "__main__":
    application.run(host='0.0.0.0', port=80)

소스와 같이 Hello goorm을 Hello world로 바꿔줍니다.

그리고 터미널에서 컨트롤 C를 눌러 서비스를 종료한 뒤 다시 실행시켜 줍니다.

성공적으로 Hello world가 보일 겁니다.

Flask에서 html 파일로 Hello world 띄워보기

여기서 끝나면 아쉬울 것 같아 html 파일을 내부의 Hello world를 한번 더 띄워보겠습니다.

일단 메인 프로젝트인 HelloFlask 밑에 templates라는 폴더를 만들고 home.html 파일을 하나 만들어줍니다.

반응형
<html>
    <body>
        <h1>
            Hello World
        </h1>
        <h2>
            Hello h2
        </h2>
    </body>
</html>

그리고 간단하게 Hello world를 h1으로, Hello h2를 h2로 보여주는 html 파일을 하나 작성해 줍니다.

그리고 다시 application.py 파일로 돌아와서 소스를 약간 수정해 줍니다.

from flask import Flask, render_template
application = Flask(__name__)


@application.route("/")
def main():
    return render_template('home.html')

if __name__ == "__main__":
    application.run(host='0.0.0.0', port=80)

필요 없던 sys import는 빼버리고 import Flask 옆에 render_template를 추가해 줬습니다.

그리고 return "hello world" 대신 render_template('home.html')을 리턴해줍니다.

html 파일을 렌더링 해서 화면에 보여주게끔 바꿔준 거죠.

마지막으로 서비스를 중지시켰다가 다시 실행시켜 주면 페이지가 성공적으로 바뀐 것을 볼 수 있습니다.

주의할 점은 수정한 파일 저장을 하지 않으면 반영되지 않으니 주의해야 한다는 점이고, application.py 파일을 수정한 경우는 서비스를 다시 실행해줘야 하지만 html 파일을 수정한 경우에는 저장하고 새로 고침만 해줘도 바로 반영이 된다는 점입니다.

구름 IDE에서 Flask로 Hello World 띄운 화면입니다.
구름 IDE에서 Flask로 Hello World 띄운 화면

여기까지 구름 IDE에서 Flask를 이용해 Hello World를 띄우는 사이트 개발이었는데요.

일단 Flask로 웹 개발이 장고보다 훨씬 가볍고 간단하다는 게 느껴집니다.

그리고 제 생각에 지금 저한테 필요한 기능은 이 정도 수준도 아닌 것 같아서 그냥 컨테이너 갈고 React 정도만 써볼까 합니다.

프런트엔드랑 백엔드를 같이 개발해 볼 생각이었는데 일단 프런트엔드만 개발하고 필요하면 이후에 백엔드 따로 구축하죠 뭐...

Comments