반응형

지난번 포스트에서는 기본적인 서비스를 시작해 보았습니다.

이번 포스팅부터는 윈도우 환경에서 실행되며, 포트는 default인 5000번을 사용한다고 가정하고 진행하겠습니다.

 

이번에는 경로를 추가해 보겠습니다.

 

app.py 파일을 열어서 아래와 같이 편집합니다.

from flask import Flask

app = Flask(__name__)

@app.route("/test")
def r_test():
    return '<p>test</p>'
    
@app.route("/")
def hello_world():
    return '<p>Hello World</p>'

 

flask 앱을 다시 실행하고, 웹브라우저에 다음과 같이 입력합니다.

 

http://localhost:5000/test

 

그러면 화면에 test라고 나옵니다.

 

 

flask 앱에 test 라는 경로가 추가되었습니다.

 

따라서 원하는 경로를 추가하려면, @app.route 에 경로를 지정하고, 바로 method 를 구현해 주면됩니다.

여기서 method 이름은 크게 중요하진 않지만, 다른 method 이름과 중복되지 않게 적어 주셔야 합니다.

 

만약 같은 경로를 중복해서 지정하면 어떻게 될까요?

 

아래와 같이, 같은 경로(/test)에 여러 개의 method를 구현하면, 제일 처음에 나오는 r_test()가 실행됩니다.

from flask import Flask

app = Flask(__name__)

@app.route("/test")
def r_test():
    return '<p>test</p>'

@app.route("/test")
def r_test2():
    return '<p>test2</p>'

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

 

반응형
반응형

Python Flask를 이용해서 REST 서비스를 구현해 보겠습니다.

 

먼저 Python 3.x가 설치되어 있다고 가정하고 진행해 보겠습니다.

 

Python 의 가상환경을 이용할 예정이며, 테스트 환경은 Windows 10 이지만, OS 의 영향이 거의 없을 듯 합니다.

 

Python 의 가상환경은 가상으로 isolated 된 실행 환경을 생성해 주며, 각 환경 별로 다른 모듈을 설치하여 실행할 수 있게 해줍니다.

 

 

프로젝트 실행 위치를 myApp 폴더라고 가정하겠습니다.

 

명령프롬프트를 사용해서 해당 위치로 이동후에 아래 명령어로 가상환경을 생성합니다.

 

> python3 -m venv venv

마지막의 venv는 가상환경이 생성되는 경로이기 때문에 원하시는 폴더로 변경해서 지정할 수 있습니다.

 

 

가상환경을 실행합니다. (윈도우)

> venv\Scripts\activate

맥OS나 리눅스에서는 다음과 같이 실행합니다.

$ source venv/bin/activate

 

참고로 가상환경을 종료할 때는 deactivate 명령어를 입력하면 됩니다.

 

 

실행후에는 명령프롬프트 앞쪽에 가상환경에 대한 정보가 나타납니다.

(venv) >

 

Flask 모듈을 설치합니다.

(venv) > pip3 install flask

 

 

간단한 Flask 앱을 만들어 보겠습니다.

 

먼저 app.py 파일을 생성해서 편집기로 열고 다음과 같이 입력합니다.

from flask import Flask

app = Flask(__name__)

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

 

그리고 가상환경의 명령프롬프트에서 다음과 같이 입력합니다. (윈도우)

> set FLASK_APP=app
> flask run

 

맥OS나 리눅스라면 다음과 같이 입력합니다.

$ export FLASK_APP=app
$ flask run

 

실행시키면 어떤 포트에서 실행 중인지에 대한 정보가 화면에 나타납니다.  참고로 default 는 5000포트인데, 맥에서는 AirPlay Receiver 서비스가 해당 포트를 사용중이기 때문에, 서비스를 중지시키거나 다른 포트를 사용해야 합니다.

 

Monterey 에서 서비스 중지시키는 방법:

System Preferences > Sharing > AirPlay Receiver 체크 해제

 

포트 지정은 -p 옵션을 사용합니다.

$ flask run -p 4999

 

웹 브라우저를 열어 아래 주소를 입력해서 결과를 확인해 봅니다.

 

http://localhost:5000 

 

브라우저에 Hello World 라고 나오면 성공입니다.

 

 

 

 

 

반응형

+ Recent posts