[ 작업 환경 ]

Centos 7.3

Python 3.7.5

Flask 1.1

 

 

 [ 사전 작업 ]

pip install --upgrade pip

pip install Flask

yum install mariadb-devel -y

pip install flask-mysqldb

 

 

 

 [ API 서버 트리 구조 ]

 

flask_api/

    app001/

        __init__.py

        routes.py

        models.py

    runserver_flask_api.py

    start.sh

    stop.sh

 

 

 

1. __init__.py 작성하기

Flask 가동시켜주는 기본 파일을 생성해줍니다.

# vim app001/__init__.py

from flask import Flask

app = Flask(__name__)

from app001 import routes

 

 

 

2. routes.py 작성하기

route 설정 전용 파일을 만들어줍니다.

from flask import request, jsonify
from app001 import app

@app.route('/test')
def test():
    return jsonify(result='testing now!!')

 

 

 

3. models.py 작성하기

데이터를 가공처리하는 파트가 작성될 파일을 만들어줍니다.

# vim app001/models.py

from flask_mysqldb import MySQL
import MySQLdb.cursors

from app001.routes import app

#### MariaDB connection information ####
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'testuser'
app.config['MYSQL_PASSWORD'] = 'testpasswd'
app.config['MYSQL_DB'] = 'testdb'
app.config['MYSQL_PORT'] = 3306

# Intialize MySQL
mysql = MySQL(app)

 

 

 

4. runserver_flask_api.py 작성하기

api 서버 가동하는 python 파일을 생성합니다.

# vim runserver_flask_api.py

from app001 import app

if __name__ == "__main__":
    app.run(host='0.0.0.0', port='50193', debug=True)

 

 

 

5. start.sh 작성하기

Linux 서버에서 쉘스크립트를 활용한 api 서버 가동 python 파일을 생성합니다.

# vim start.sh

#!/bin/bash

nohup /root/.pyenv/shims/python $API_HOME/runserver_flask_api.py >> $API_HOME/server_log.txt &
# vim /etc/profile

# ...

export API_HOME="/flask_api"
# 아래 커맨드 입력을 통해 변경된 /etc/profile 설정 내용을 적용해줍니다.

source /etc/profile

 

 

 

6. stop.sh 작성하기

Linux 서버에서 쉘스크립트를 활용해 작성한 python 파일로 실행되어 가동중인 api 서버를 kill 합니다.

# vim stop.sh

#!/bin/bash

stop_target=`ps -ef |grep python |grep "runserver_flask_api.py" |awk '{print$2}'`
for each_target in $stop_target; do
    kill -9 $each_target
done

 

 

 

7. 정상 출력 확인

curl localhost:5001/test

 

 

 

 

+ Recent posts