don't stop believing

Flask로 API 서버 만들기 (8) - Extra tips (Makefiles) 본문

Python/Flask

Flask로 API 서버 만들기 (8) - Extra tips (Makefiles)

Tongchun 2018. 11. 18. 21:20

Developing API Sample Server by Flask 

Original Post: How to structure a Flask-RESTPlus web service for production builds

Github: https://github.com/cosmic-byte/flask-restplus-boilerplate


Flask로 API 서버 만들기 (1) - 개발 환경 준비

Flask로 API 서버 만들기 (2) - config 와 실행 확인

Flask로 API 서버 만들기 (3) - User 테이블 만들기

Flask로 API 서버 만들기 (4) - Testing

Flask로 API 서버 만들기 (5) - User Operations

Flask로 API 서버 만들기 (6) - Security and Authentication

Flask로 API 서버 만들기 (7) - Route protection and Authorization

Flask로 API 서버 만들기 (8) - Extra tips (Makefiles)


Extra Tips로 있는 Makefiles까지 해봅시다.

nGleAPI 서버를 배포하고 쉽게 설치하기 위해 Makefile을 만들수 있습니다.

먼저 Makefile을 만듭니다.

1
$ sudo vim ./Makefile
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Makefile 안에 아래와 같이 작성합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.PHONY: clean system-packages python-packages install tests run all
clean:
find . -type f -name '*.pyc' -delete
find . -type f -name '*.log' -delete
system-packages:
sudo apt install python-pip -y
python-packages:
pip install -r requirements.txt
install: system-packages python-packages
tests:
python manage.py test
run:
python manage.py run
all:
clean install tests run
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

이제 nGleAPI 서버의 모든 파일을 압축합니다.

1
2
$ cd ..
$ tar -czvf nGleAPI_0.1.tar.gz nGleAPI/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

정상적으로 tar 압축이 되었다면 nGleAPI_0.1.tar 파일이 생성됩니다.

이걸 다른 서버로 이동하고 압축을 풀어줍니다.

1
2
$ tar -xzvf nGleAPI_0.1.tar.gz
$ cd nGleAPI/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

압축을 풀고 nGleAPI 폴더를 확인했다면 Makefile을 이용해 API 서버 실행에 필요한 Package들을 설치해 줍니다.

아래 명령으로 설정/설치할 수 있습니다.


  1. make install : installs both system-packages and python-packages
  2. make clean : cleans up the app
  3. make tests : runs the all the tests
  4. make run : starts the application
  5. make all : performs clean-up,installation , run tests , and starts the app.

make 명령을 차례대로 수행하거나 make all 로 한번에 설치하고 test 후 실행까지 할 수  있습니다.

1
2
3
4
5
6
7
8
9
$ make run
python3 manage.py run
* Serving Flask app "app.main" (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 145-484-411
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


만약 make 명령을 했을 때 아래와 같이 python 명령을 찾을 수 없다면 Makefile에 python3로 명시해 주면 해결될 수 있습니다.

make: python: Command not found

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.PHONY: clean system-packages python-packages install tests run all
clean:
find . -type f -name '*.pyc' -delete
find . -type f -name '*.log' -delete
system-packages:
sudo apt install python3-pip -y
python-packages:
pip3 install -r requirements.txt
install: system-packages python-packages
tests:
python3 manage.py test
run:
python3 manage.py run
all:
clean install tests run
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

여기까지 입니다.


Comments