[ 작업 환경 ]
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
'Development > Flask with Python' 카테고리의 다른 글
[Solved][Flask1.1][Mysql] MySQLdb._exceptions.OperationalError: (1242, 'Subquery returns more than 1 row') 서브쿼리 오류 (0) | 2020.03.11 |
---|---|
[Flask1.1] 여러 이미지 파일 불러오는 route 만들기 (0) | 2020.02.20 |
[Flask1.1][Mysql] 실습 - 10 : 파일 업로드하기 기능 추가 (0) | 2020.01.24 |
[Flask1.1][Mysql] Query Parameter 적용하기 예시 (0) | 2020.01.22 |
[Solved][Flask1.1] jsonify 한글 인코딩 변경되어 비정상 출력 문제 해결 방법 2가지 (1) | 2020.01.22 |