NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Python 파이썬 플라스크(Flask) 웹 서버 만들기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 파이썬으로 웹프로젝트를 개발할 때 Django(장고)를 주로 사용하지만, 저처럼 초보 개발자분들은 대부분 가볍고 사용하기 편한 플라스크(Flask)를 많이 쓰고 계실겁니다. 아무튼, 플라스크는 파이썬에서 최대한 라이트하게 개발할 때 좋은 패키지입니다. 그렇다고해서 필요한 기능들이 없는건 아닙니다. 원하는 대부분의 기능들을 쉽고 빠르게 개발할 수 있습니다.

     

    Flask는 마이크로 웹 프레임워크입니다. 최소한의 구성 요소와 기능들을 제공하기 때문에 처음 접하는 개발자도 쉽게 접근할 수 있고, 필요에 따라 유연하게 사용할 수 있습니다. 데이타베이스를 통합하거나 인증관련된 복잡한 어플리케이션을 만드는데도 유용하게 사용할 수 있습니다. 프로그래밍을 시작할 때 항상 하는 Hello, World!를 웹으로 표시 해볼께요. Visual Studio Code를 실행하고, 플라스크를 설치 해줍니다. 그전에 파이썬은 컴퓨터에 설치되어 있어야 합니다.

    pip install Flask

     

    아래와 같이 파이썬 코드를 작성 해줍니다.

    from flask import Flask
    app = Flask(__name__)
    @app.route('/')
    def home():
        return 'Hello, World!'
    if __name__ == '__main__':
        app.run(debug=True)

     

    실행하면 터미널에 아래와 같이 로그가 찍힙니다. 중간쯤 Running on http://127.0.0.1:5000을 콘트롤키를 누르고 클릭하세요.

    PS D:\MyWorkspace> & C:/Users/ngmas/AppData/Local/Programs/Python/Python311/python.exe d:/MyWorkspace/NGMsoftware.py
     * Serving Flask app 'NGMsoftware'
     * Debug mode: on
    WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
     * Running on http://127.0.0.1:5000
    Press CTRL+C to quit
     * Restarting with stat
     * Debugger is active!
     * Debugger PIN: 178-885-668
    127.0.0.1 - - [14/Mar/2023 10:12:37] "GET / HTTP/1.1" 200 -
    127.0.0.1 - - [14/Mar/2023 10:12:37] "GET /favicon.ico HTTP/1.1" 404 -

     

    웹브라우저에서 Hello, World!가 찍히는걸 확인할 수 있습니다.

    U1I2AQJ.png

     

     

    코드를 약간 변경 해볼까요? Hello, World!를 아래와 같이 변경한 후 Ctrl+S로 저장하세요. 그러면, 자동으로 코드가 업데이트됩니다. 웹브라우저에서 새로고침(F5) 해보세요.

    return '<h2>Hello, World!</h2>'

    z4gq4UZ.png

     

     

    이렇게 동작하는 이유는 아래 어플리케이션 실행에서 디버그를 True로 설정했기 때문입니다.

    app.run(debug=True)

     

    기본적으로 home 페이지로 연결되는데요. 다른 페이지도 추가하고 싶잖아요? 그럴겁니다^^; 코드를 아래와같이 변경하고, 매크로 페이지를 하나 추가 해봅시다.

    @app.route('/macro')
    def user():
        return 'Hello, NGMsoftware!';

     

    실행하고, 웹브라우저에서 localhost:5000/macro 주소로 이동 해보세요. 아래와 같이 페이지가 표시됩니다.

    4AgB5ka.png

     

     

    플라스크는 GET/POST도 쉽게 사용할 수 있습니다. 보통 동적 URL이라고 부르는데요. 여러분들도 웹서핑을 하다보면 어떤 페이지로 이동하거나 버튼을 누를 때 웹페이지 주소 뒤로 무언가가 많이 달라붙는걸 보셨을겁니다. 실제로 서버에서는 이런 정보를 받아서 비즈니스 로직을 처리하는데요. 플라스크에서는 아래와같이 뷰 함수에 인수를 전달할 수 있습니다.

    @app.route('/macro/<user_name>/<int:user_id>')
    def user(user_name, user_id):
        return f'Hello, NGMsoftware!<br /><b>{user_name}</b> ({user_id})';

     

    실행하고, 웹브라우저에서 localhost:5000/macro/test/1000을 입력 해보세요.

    zBP0P8t.png

     

     

    간단하게 파이썬에서 플라스크 웹서버를 실행하고, 페이지를 만들어봤습니다. 생각보다 간단해서 누구나 쉽게 홈페이지를 만들고 서비스할 수 있을겁니다. 자세하게 알아보지는 않았지만, 웹서비스와 RESTful도 가능합니다. 아마 홈페이지 어딘가에 정리해둔 글이 있을텐데요. 마이크로 서비스를 개발해야 한다면, 도커와 쿠버네티스를 이용해서 각각의 서버를 관리할 수 있습니다. 쿠버네티스에서 도커 지원을 중단했다는 글을 어디선가 본듯하긴한데... 이 부분은 좀 더 알아봐야 할거 같아요. 아무튼, 빠르게 웹어플리케이션 서비스를 개발할 때 유용하게 사용할 수 있으니 한번쯤은 다뤄보시는걸 추천드립니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.