본문 바로가기

카테고리 없음

Flask 플라스크 사용해보기(Python Web Framework)

 

1. Flask 란?

 

웹 페이지를 만들 수 있게 해주는 웹 프레임워크입니다.

프레임 워크: 일반적인 정의"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"입니다. 쉽게 설명하자면, 웹(사이트)을 띄우는데 필요한 여러 기능을 제공해주는 기능 모음(클래스 형태로 기능 제공)입니다.

클래스 형태란 python에서 class로 기능을 구현해서 제공해 준다는 것입니다.

 

+

웹 개발은 웹페이지 화면을 만드는 프런트엔드와, 웹페이지의 내부 정보를 처리하는 백엔드로 나뉩니다. Flask는 백엔드의 전반적인 역할을 해줍니다.

 일반적으로 웹사이트를 만들려면 HTML, CSS, JS(Java Script)로 웹페이지 구현을 합니다(프런트 엔드). 하지만, 다른 사람들이 웹페이지에 접속을 하려면, 웹페이지를 인터넷에 띄워야 하고, 사람들이 들어오는 트래픽을 감당해야 되고, 사람들이 웹페이지를 통해 회원가입을 하거나, 게시판에 글을 쓰면 그 정보들 역시 관리해야 합니다.

 

++

여기서 Flask는 웹페이지를 인터넷에 띄우고, 트래픽을 감당하고, 회원들의 정보와 게시판 정보를 관리하는 역할을 도와줍니다. 

 

 

2. 설치하기

pip install flask

 

 

3. 언제 어디서나 Hello World!

flask로 Hello World 출력하기

flask 공식홈페이지에 가면 QuickStart 부분에 나왔있다.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'
    
if __name__ == "__main__": 	# 프로그램의 시작점일 때만 아래 코드 실행
	app.run()
더보기

코드 해석하기

app = Flask(__name__) : Flask 객체를 app이라는 변수에 할당. 

__name__은 python 내부의 특별한 변수명이며 module이름이 저장되는 변수. 

쉽게 말해 현재 스크립트가 main 스크립트임을 확인하는 것이고, 아래의 if __name__ == "__main__": 에서 현재 스크립트가 main이기 때문에 app.run()을 실행하게 해 줍니다.

 

 

@app.route('/') : 인터넷의 주소 부분을 의미. 

해당 주소에서 @app.route('/') 다음에 나오는 함수를 실행한다는 의미.

ex) www.naver.com/mail 주소가 있을 때, @app.route('/mail') 뒤에 메일 관련 함수가 오고, 네이버에서 mail을 누르면(www.naver.com/mail로 이동하면) 메일 관련 함수가 실행.

 

hello_world 함수: 'Hello, World!'를 반환하는 함수.

 

if __name__ == "__main__":    app.run() : 현재 스크립트가 메인으로 실행되었을 때(즉, python [현재스크립트].py 실행했을 때) app.run()을 실행.

 

실행하니 Flask의 기본 Port인 5000 주소로 생성되었다.

 

 

결과

 

아주 잘 된다 :)