기타/What I Learned
[Flask API] 기초 지식
가죽방패
2024. 2. 5. 13:31
파이썬에서 Flask API는 웹 애플리케이션을 제작할 수 있는 마이크로 프레임워크이다
커뮤니티를 통한 기능 확장이 용이한 편이며 디버거 모드로 실행 가능한 웹 서버도 제공하여 디버깅 기능 또한 내장되어 있어 코드 동작 여부를 신속하게 확인 할 수 있다
RESTful 서비스에 유용한 동적 URL을 지원, Flask-SQLAlchemy 패키지로 ORM을 지원하여 데이터베이스에 접근할 수 있도록 기능 지원도 한다
from flask import Flask
app = Flask(__name__)
@app.route("/")
def basic():
return "Hello World"
위와 같은 코드가 기본적으로 Flask를 사용하는 예시이며 터미널(VS code 기준)에 하단의 명령어를 입력하면 터미널 내에 flask가 응답한 결과가 나오게 된다
curl -X GET -i -w '\n' localhost:5000
from flask import Flask
app = Flask(__name__)
@app.route("/")
def basic():
return {"message": "Hello World!"}
물론 응답 결과는 flask가 반환하는 결과 값에 따라 출력되는 결과가 다르다. 예를 들어, basic 함수의 리턴 값을 json 형식으로 변경하여 실행한다면 좌측과 같이 Content-Type 이 html 에서 json 형식으로 표시가 된다
# 기본 값은 GET 메서드임(명시하지 않아도 GET으로 작동)
@app.route("/경로")
# 명시하는 예시
@app.route("/example", methods=["GET", "POST"])
def example():
if request.method == "GET": return jsonify(status="OK", method="GET"), 200
if request.method == "POST": return jsonify(status="OK", method="POST"), 200
'''
요청 객체에는 다양한 정보가 있음
서버 정보, 헤더, URL, access_route(여러 번 전달되는 요청 모든 IP 주소)
full_path(요청 전체 경로), is_secure(HTTPS, WSS 프로토콜 사용시 True), is_JSON, cookies
헤더 정보
Cache-Control, Accept(클라이언트가 어떤 종류의 콘텐츠 유형을 이해하는지 알려줌), Accept-Encoding
User-Agent, Accept-Language, Host
'''