티스토리 뷰

728x90
반응형

목차

     

    다소 뜬금없지만 플라스크를 공부해야 할 일이 생겼다.

     

    그 목적은 데이터 파이프라인 구축 시 크롤링 모듈을 파이썬으로 분리시켜 API 통신을 하도록 만드는 것이다.

     

    데이터 파이프라인.. 이름은 멋있지만 지금은 감도 안 오고 해서 일단 할 수 있는 공부부터 한다.

     

    이번 글에선 정말 단순하게 플라스크를 설치하고, 환경을 설정한 뒤에, 서버를 띄우는 것까지 해보려 한다.

     

    장고에 비해 매우 단순하고 가볍다던 플라스크, 한 번 경험해 보자!

     

    Installation

     

    플라스크를 사용하려면 당연히 설치부터 해야 한다. 나는 맥북을 사용하며, 파이썬은 이미 깔려있다 가정한다.

     

    터미널에 아래와 같이 입력하면,

    pip install Flask

    관련 패키지가 매우 빠르게 설치된다. 그 대략적인 목록은 다음과 같다.

     

    • Flask: 2.3.2
    • Jinja2: 3.1.2
    • MarkupSafe: 2.1.3
    • Werkzeug: 2.3.6
    • blinker: 1.6.2
    • itsdangerous: 2.1.2

     

    Configuration

     

    다음은 환경 설정이다. 별다른 설정은 없고, 그냥 venv를 이용한 가상 환경을 세팅하는 것이다.

    python3 -m venv myenv
    source myenv/bin/activate

    위 줄을 각각 입력하면 가상 환경 설정과 설정한 myenv를 활성화하게 된다.

     

    여기까지 하면 만들어지는 패키지 내용이다.

     

    Basic App

     

    이제 Hello, World! 를 볼 차례다.

     

    위의 패키지의 루트 경로에 app.py라는 이름의 파일을 만들고 아래와 같이 구성한다.

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

    처음 보는 코드니까 꼼꼼하게 살펴보자.

    from flask import Flask

    위에서 설치한 Flask 패키지에서 flask를 가져온다. 당연한 얘기다.

    app = Flask(__name__)

    Flask 객체를 생성하고 변수 app에 할당한다. 여기서 __name__은 현재 실행 중인 모듈의 이름을 나타내는 동시에

     

    Flask에게 시작점을 알려주어 각종 파일의 경로를 찾을 수 있게 하는 역할을 한다.

     

    해당 스크립트 파일이 직접 실행된다면 __name__은 __main__이 되며, 다른 모듈로 임포트 되면

     

    __name__은 해당 모듈의 이름이 된다.

    @app.route("/")

    애너테이션...이 아니라 데코레이터를 사용해 아래의 함수를 루트 URL("/")에 매핑한다.

     

    애너테이션과 데코레이터의 비교는 다른 글에서 하기로 하자.

    def home():
        return "Hello, World!"

    라우트 핸들러 함수를 정의하고, 해당 함수가 "Hello, World!"라는 문자열을 반환하도록 한다.

    if __name__ == "__main__":
        app.run()

    이 블럭은 스크립트가 직접 실행돼서 __name__이 __main__일 때

     

    플라스크 앱을 실행하도록 한다.

     

    이렇게 작성한 뒤에 저장을 하고, 터미널에서 아래와 같이 입력한 뒤에

    FLASK_APP=app.py flask run
    http://127.0.0.1:5000/

    으로 접속하면 아래와 같은 화면을 만날 수 있다.

    듣던 대로 초 간단하게 서버를 띄웠다. 이를 바탕으로 시간이 날 때마다 조금씩 구현하는 연습을 해야겠다.

    반응형

    'Python > Flask' 카테고리의 다른 글

    [Flask]갑자기 만들어보는 Flask 게시판  (0) 2023.09.26
    댓글
    공지사항
    최근에 올라온 글
    최근에 달린 댓글
    Total
    Today
    Yesterday
    링크
    «   2024/11   »
    1 2
    3 4 5 6 7 8 9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30
    글 보관함