서버개발은 visual studio code로 한다.
파이썬이 최신이라고 해서 다 좋은 게 아니다. 파이썬이 최신이라도, 사용하고 있는 라이브러리가 최신버전의 파이썬이 지워버리면 의미가 없다. AWS의 Lambda라는 서비스하는 곳에 배포를 할건데, 파이썬이 3.8 버전일때 가장 안정적이다.
그리하여, 파이썬 가상환경을 만들어서 작업을 할 것이다.
conda -n flask3.8 python=3.8 |
가상환경에 진입해준다.
Flask란
- 간단한 웹사이트, 혹은 간단한 API서버를 만드는데 특화 되어있는 Python Web Framework 이다.
- Flask는 가벼우면서도 파워풀하다. 기능은 많이 없지만, 생산성은 좋다.
ㄴ 가볍게 배울수 있고, 가볍게 사용할 수 있고, 가볍게 배포할 수 있다.
- 다양한 Extension을 지원한다. (우리가 당분간 다룰 API는 Restul API이다.)
- 가장 큰 장점은 간단한 서버를 운영하는 데 .py 파일 단 한개면 충분하다.
Flask 공식링크
https://flask.palletsprojects.com/en/2.0.x/
Flask 이용: Restful API 이용
vscode command prompt터미널에서 플라스크를 설치한다.
pip install flask flask-restful |
ㄴ flask와 flask-restful 을 설치해준다.
ㄴ 여러 라이브러리를 설치하고 싶으면 중간에 띄어쓰기 하나만 하면 된다.
ㄴ 라이브러리 설치가 끝난 후에, 파일을 저장하고, vscode를 다시 열어준다.
from flask import Flask app=Flask(__name__) @app.route('/', methods = ['GET']) def hello_world(): return 'Hello World hihi' if __name__ == '__main__': app.run() |
# '/': 최상위 경로라는 뜻,
# 이 경로로 요청이 오면, 서버(나)는 Hello World라고 응답할거다.
# 실행을 하면 우리 로컬에서 실행되는 것
Flask 기본 표현 틀이다.
기본틀 사이에서 코드를 작성하고, 작업한다.
App = Flask(__name__): |
ㄴ Flask 생성
ㄴ 웹 애플리케이션이기 때문에 app이라고 쓴다
저장하고, vscode command prompt 터미널에서 하기 코드를 입력하고 엔터를 치면
python app.py |
- 정상 작동 될경우에,터미널에서는 상기이미지 처럼 표시가 된다.
- Lazy loading : 처음부터 모든걸 다 끌어안고 다 올리진 않겠다. (Lazy : (IT 공용 뜻) 천천히 올리겠다.)
- Envirionment은 기본적으로 두가지 버전이 있다. Develope은 개발중인거고, product는 실제 서비스 하는 버전. 그리고 product모드는 디폴트임.
ㄴ Production 모드는 실제 서비스하는 버전이기 때문에 debug mode는 off이다.
- Warning은: 개발은 서비스 환경에서 하지 말라는 뜻이다.
- Use a production WSGI server instead.
ㄴ WSGI: web service gateway interface -> 누가 오나 안오나 계속 보고 있는 것.
ㄴ Web서버 = Flask 서버,
ㄴ Gateway: 어떤 코드를 붙들고 있는 것을 게이트 웨이라고 함.
ㄴ Interface: 대면
- Running on 이 서버에 이렇게 이렇게 떳다.
- 노란색 박스로 표시된 URL 주소가 로컬 주소이다. (하기 주소 중 하나처럼 나타날 때도 있다.)
- 웹브라우저에 하기 세가지 주소 중에 하나만 실행해서, Hello World hihi라고 나오면 정상작동 하는 것을 볼 수 있다. (다 같은 뜻이다)
- 원래 URL 주소 뒤에 /(슬래시)가 있는 데, 생략 가능하다.
- Flask가 기본적으로 제공하는 포트가 5000.
- Ctrl + C는 서버를 종료시킨다는 뜻이다.
- 상기 코드는 서버가 실시간으로 업데이트가 안되어서, 서버 종료 후에 다시 실행시켜야한다
127.0.0.1:5000 |
0.0.0.0.:5000 |
Localhost:5000 |
정상 작동한다!
------
다음 포스트에서는 @app.route()의 의미 및 HTTP Methods를 설명한다.
'BackEnd > Python-Flask' 카테고리의 다른 글
[백엔드] Flask: Python에서 DB에 데이터 insert (0) | 2022.06.26 |
---|---|
[백엔드] Flask: Python으로 DB접속/이용순서 (0) | 2022.06.26 |
[백엔드] Flask: request.get_jason() (0) | 2022.06.21 |
[백엔드] Flask: return 타입, jsonify() (0) | 2022.06.21 |
[백엔드] Flask : @app.route() 의미 (0) | 2022.06.21 |