티스토리 뷰
목차
다소 뜬금없지만 플라스크를 공부해야 할 일이 생겼다.
그 목적은 데이터 파이프라인 구축 시 크롤링 모듈을 파이썬으로 분리시켜 API 통신을 하도록 만드는 것이다.
데이터 파이프라인.. 이름은 멋있지만 지금은 감도 안 오고 해서 일단 할 수 있는 공부부터 한다.
이번 글에선 정말 단순하게 플라스크를 설치하고, 환경을 설정한 뒤에, 서버를 띄우는 것까지 해보려 한다.
장고에 비해 매우 단순하고 가볍다던 플라스크, 한 번 경험해 보자!
Installation
플라스크를 사용하려면 당연히 설치부터 해야 한다. 나는 맥북을 사용하며, 파이썬은 이미 깔려있다 가정한다.
터미널에 아래와 같이 입력하면,
pip install Flask
관련 패키지가 매우 빠르게 설치된다. 그 대략적인 목록은 다음과 같다.
- Flask: 2.3.2
- Jinja2: 3.1.2
- MarkupSafe: 2.1.3
- Werkzeug: 2.3.6
- blinker: 1.6.2
- itsdangerous: 2.1.2
Configuration
다음은 환경 설정이다. 별다른 설정은 없고, 그냥 venv를 이용한 가상 환경을 세팅하는 것이다.
python3 -m venv myenv
source myenv/bin/activate
위 줄을 각각 입력하면 가상 환경 설정과 설정한 myenv를 활성화하게 된다.
여기까지 하면 만들어지는 패키지 내용이다.
Basic App
이제 Hello, World! 를 볼 차례다.
위의 패키지의 루트 경로에 app.py라는 이름의 파일을 만들고 아래와 같이 구성한다.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Hello, World!"
if __name__ == "__main__":
app.run()
처음 보는 코드니까 꼼꼼하게 살펴보자.
from flask import Flask
위에서 설치한 Flask 패키지에서 flask를 가져온다. 당연한 얘기다.
app = Flask(__name__)
Flask 객체를 생성하고 변수 app에 할당한다. 여기서 __name__은 현재 실행 중인 모듈의 이름을 나타내는 동시에
Flask에게 시작점을 알려주어 각종 파일의 경로를 찾을 수 있게 하는 역할을 한다.
해당 스크립트 파일이 직접 실행된다면 __name__은 __main__이 되며, 다른 모듈로 임포트 되면
__name__은 해당 모듈의 이름이 된다.
@app.route("/")
애너테이션...이 아니라 데코레이터를 사용해 아래의 함수를 루트 URL("/")에 매핑한다.
애너테이션과 데코레이터의 비교는 다른 글에서 하기로 하자.
def home():
return "Hello, World!"
라우트 핸들러 함수를 정의하고, 해당 함수가 "Hello, World!"라는 문자열을 반환하도록 한다.
if __name__ == "__main__":
app.run()
이 블럭은 스크립트가 직접 실행돼서 __name__이 __main__일 때
플라스크 앱을 실행하도록 한다.
이렇게 작성한 뒤에 저장을 하고, 터미널에서 아래와 같이 입력한 뒤에
FLASK_APP=app.py flask run
http://127.0.0.1:5000/
으로 접속하면 아래와 같은 화면을 만날 수 있다.
듣던 대로 초 간단하게 서버를 띄웠다. 이를 바탕으로 시간이 날 때마다 조금씩 구현하는 연습을 해야겠다.
'Python > Flask' 카테고리의 다른 글
[Flask]갑자기 만들어보는 Flask 게시판 (0) | 2023.09.26 |
---|
- Total
- Today
- Yesterday
- 중남미
- 칼이사
- 야경
- 남미
- 지지
- Backjoon
- 스트림
- 맛집
- 유럽여행
- java
- 기술면접
- 세계여행
- 세모
- 동적계획법
- 백준
- BOJ
- 면접 준비
- a6000
- spring
- 리스트
- 여행
- 유럽
- RX100M5
- 세계일주
- 파이썬
- 스프링
- Algorithm
- 자바
- Python
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |