2021. 12. 23. 14:04ㆍCloud Native/Flask, Django
- 목차
About Flask
플라스크는 Python으로 작성된 micro web framework 중 하나 입니다. Werkzeug toolkit과 jinja2 template engine을 기반으로 개발 되었습니다. 2004년 오스트리아 개발자인 Armin Ronacher가 개발 한 web framework 입니다.
Flask는 form, database 등 다른 framework(e.g., Java Spring) 등에서 제공하는 많은 기능들을 포함하고 있지 않습니다. 즉, 핵심적인 web framework으로서의 기능만을 제공하고 있으며, 이는 장점이자 단점이 될 수 있습니다. 개발자에게 있어서 많은 자유도, 예를 들면 어떤 UI framework을 사용할지 등을 부여하기 때문에 다양한 customizing이 가능하며, 이는 입맛에 맞는 개발을 한다는 점에서는 장점이 될 수 있으나, 쉽게 개발 진입이 가능하지 않다는 단점으로 생각 될 수 있는 부분입니다.
플라스크 설치
Python이 설치가 되어 있다면 간단하게 pip installation을 통해서 Flask의 설치가 가능합니다.
pip install Flask, flask_wtf, flask_sqlalchemy, mysql
cf. Python 설치: https://autumnrain.tistory.com/entry/Python-%EC%84%A4%EC%B9%98
hello 플라스크!
Flask의 설치가 완료 되었다면, 매우 간단하게 web server를 개발해 볼 수 있습니다.
아래와 같이 매우 간단하게 sample web server code를 작성해 봅니다.
project folder를 원하시는 이름으로 생성 한 후, (e.g., hello)
해당 folder 내에 __init__.py를 생성합니다. 이후 아래와 같이 코드를 작성합니다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello World'
if __name__ == '__main__':
app.run(debug=True)
위 코드를 실행하려면, hello folder로 진입 후, 다음과 같이 환경 변수를 설정합니다.
set FLASK_APP=hello
set FLASK_ENV=development
flask run
위와 같이 입력하면 flask가 hello web server를 수행합니다.
web browser 상에서 "localhost:5000" 주소를 입력하여 web server에 접속 할 수 있습니다.
만약 다른 주소 및 port를 통해 접속 하고자 한다면, 예를 들어 다른 PC 상에서 해당 server에 접속 하게 하고자 한다면 다음과 같이 Flask를 실행 합니다.
flask run --host=0.0.0.0 --port=5000
위의 typing을 쉽게 수행하기 위해서 batch command file을 (bat file) 생성하여 이를 실행하는 방법도 있습니다.
@echo off
cd c:/projects/hello
set FLASK_APP=hello
set FLASK_ENV=development
c:/venvs/hello/scripts/activate
간단한 web server는 model, form, view, static, template 등을 포함하며 다음과 같은 구조를 지니게 됩니다.
├── pybo/
│ ├─ __init__.py
│ ├─ models.py <- DB 처리 file (using ex. SQLAlchemy) 모델 기반 data 처리
│ ├─ forms.py <- 서버 전송 폼 처리 (ex. WTForms lib 사용)
│ ├─ views/ <- 화면구성
│ │ └─ main_views.py
│ ├─ static/ <- CSS, JavaScript, image file들
│ │ └─ style.css
│ └─ templates/ <- HTML file
│ └─ index.html
└── config.py <- 환경변수, DB 등의 설정
'Cloud Native > Flask, Django' 카테고리의 다른 글
FastAPI (0) | 2022.04.22 |
---|