개발일기

Flask에 대해 알아보기 본문

SideProject(My-Selectshop-Finder)

Flask에 대해 알아보기

황대성 2024. 7. 12. 02:32

개요

카카오 지도 api에서 제공하는 데이터에는 한계가 있다. 카카오 지도에서 볼 수 있는 매장의 데이터의 양과 제공해주는 매장의 데이터의 양은 차원이 다르다. 그렇기 때문에 크롤링을 사용해서 데이터를 가져와 보기로 했다. 그러기 위해선 백엔드 부분을 알아야 한다. 열심히 찾아본 결과 Flask와 BeautifulSoup를 사용해서 크롤링을 진행해 보기로 했다. 먼저 Flask에 대해 알아보자.

 

Flask란?

Python으로 작성된 마이크로 웹 프레임워크이다. 경량화되고 유연성이 높아, 웹 애플리케이션 개발에 널리 사용된다. 라고 설명되어 있다. 솔직히 무슨 말인지 잘 와 닿지 않는다. 하지만 공식문서에서 제공하는 가장 기본적인 코드를 확인해보면 정말 간단하게 작성되어 있다. 왜 사용되는지 한번 확인해 보자.

 

1. 간결하고 이해하기 쉬운 코드를 작성할 수 있도록 설계되어있다.

2. 필요에 따라 확장할 수 있는 다양한 플러그인을 지원한다.

3. URL과 실행할 함수를 매핑하는 라우팅을 제공한다.

4. HTML 문서에 동적 콘텐츠를 삽입할 수 있는 템플릿 엔진(Jinja2)을 사용한다.

5. 템플릿에서 Python 표현식을 사용하여 HTML을 동적으로 생성할 수 있다.

6. 디버깅 기능을 제공하여 개발 중 발생하는 오류를 쉽게 찾을 수 있다.

 

Flask 기본 구조

 

설치

pip install Flask

 

기본 구조

from flask import Flask

//Flask 애플리케이션 객체를 생성한다.
app = Flask(__name__)

//URL 라우트를 설정한다. '/' 경로로 요청이 들어오면 'hello_world' 함수가 실행된다.
@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
//애플리 케이션을 실행한다. 'debug=True'는 개발 모드로 실행하며 코드 변경 시 자동으로 서버를 재시작 한다.
    app.run(debug=True)

 

요청 데이터 처리

from flask import request

@app.route('/api_url', methods=['POST'])
def api_url():
    arg1 = request...
    arg2 = request...

 

'request' 객체를 사용하여 클라이언트로부터 전달된 데이터를 처리할 수 있다.

request.args : URL의 쿼리 매개변수에 접근
request.form : 폼 데이터에 접근
request.files : 업로드된 파일에 접근
request.values : args와 form이 복합적으로 사용된 데이터에 접근
request.json : JSON 형식의 요청 본문에 접근

 

마무리

간단하게 Flask는 이렇게 설명 되는 것 같다. 현재는 카카오맵 크롤링은 진행하면서 간단하게 프론트엔드에서 요청하는 데이터를 처리할 때 사용중이긴 하지만 아무것도 모르는 상태에서 감을 잡을 수 있을만큼 제공되는 기본 코드가 간단하다. 더 공부하고, 작성한 코드는 나중에 또 공유할 예정이다.