#1 Flask

황지성·2022년 11월 9일
0

이전에도 Flask를 사용해본 적이 있지만 전체적인 기능을 구현하기 바빠 코드 하나하나가 어떤 의미를 가지고 있는지 몰랐다.
마침 항해99 0주차 및 Pre-onboarding 기간 동안 Python의 Flask를 사용하고 있다.
이번 기회에 Flask가 무엇이며, 어떤 식으로 동작되고 동작에 필요한 요소들은 어떤 것들이 있는지 알아보고자 한다.

1. Flask란?

플라스크(Flask)는 파이썬으로 작성된 마이크로 웹 프레임워크의 하나로, Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 둔다. 플라스크는 특별한 도구나 라이브러리가 필요 없기 때문에 마이크로 프레임워크라 부른다. 데이터베이스 추상화 계층, 양식 유효성 확인, 기타 기존의 서드파티 라이브러리가 공통 기능을 제공하는 구성 요소가 없다. - Wikipedia Flask Web Framework

위키백과에 명시된 내용만 읽어보았을 땐, 크게 와닿지가 않는다. 마이크로 웹 프레임워크는 무엇이며, 뒤에 서술된 용어들조차 잘 들어오지 않아 인용문을 분해해 찾아보았다.

1.1 마이크로 웹 프레임워크(Micro Web Framework)란?

  • 많은 요소가 들어간 무거운 프레임워크가 아닌 핵심만 들어간 프레임워크
  • 그러나 필요에 따라 쉽게 확장할 수 있는 프레임워크
	from flask import Flask
    
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
    	return "Hello World!"
    
    if __name__ == "__main__":
    	app.run()

위 코드를 보면 Flask 라이브러리를 import한 후, 6줄의 코드로 서버를 기동할 수 있다.
간단하게 서버를 만들 수 있지만, 플라스크에는 폼(form)이나 데이터베이스(database)를 처리하는 기능이 없다.

그러나 3줄의 코드를 추가하면 폼과 데이터베이스를 처리할 수 있다.

	from flask import render_template, request	
    from pymongo import MongoClient
    import certifi

각각의 라이브러리는 어떤 역할을 할까?

render_template
: Flask에서 제공하는 함수로 templates에 저장된 html을 불러올 때 사용하는 함수

request
: 유입 요청 데이터에 접근하기 위해서 사용되는 전역 객체

pymongo
: mongodb를 사용하기 위한 라이브러리

certifi
: Mozilla가 신중하게 선별한 루트 인증서 모음을 제공함.
즉, 공용 수준의 인증서들을 사용할 수 있도록 함

Flask는 가벼운 프레임워크지만 사용자의 필요에 따라 기능들을 확장해 나갈 수 있다.
그래서 마이크로 웹 프레임워크(Micro Web Framework)라고 지칭한다.

1.2 그래서 Flask가 머야?

  • Flask는 파이썬 기반의 웹 프레임워크 중 하나
    : 자바 기반 웹 프레임워크로는 대표적으로 스프링(Spring)이 있듯이, 대표적인 파이썬 웹 프레임 워크인 Django와 Flask
  • 프레임워크임에도 마이크로(Micro)라는 말이 붙을 정도로 가볍다.
  • 사용자의 필요에 따라 기능들을 추가할 수 있어 확장성이 좋은 프레임워크
profile
성장하는 개발자

0개의 댓글