from flask import Flask
app = Flask(__name__) # Flask 애플리케이션 객체 생성
@app.route('/') # 루트 URL에 대한 요청을 처리하는 함수 등록
def hello():
return "Hello, World!" # "Hello, World!" 문자열 반환
if __name__ == "__main__":
app.run() # 개발 서버 실행
from flask import Flask
:flask 모듈에서 Flask 클래스를 import한다.app = Flask(__name__)
: Flask 애플리케이션 객체를 생성한다.
**__name__
**은 현재 모듈의 이름을 나타내는 특수한 변수@app.route('/')
: 데코레이터를 사용하여 루트 URL에 대한 요청을 처리하는 함수를 등록한다.
**'/'
**는 루트 URL을 의미합니다.def hello():
: hello()
함수를 정의한다. 이 함수는 루트 URL에 대한 요청을 처리하고, "Hello, World!"라는 문자열을 반환하게 됨.if __name__ == '__main__':
: 현재 모듈이 직접 실행되는지 확인하는 조건문
이 모듈이 임포트되어 다른 모듈에서 사용될 때는 실행되지 않도록 한다.app.run()
: Flask 개발 서버를 실행한다. 서버는 기본적으로 **localhost
**의 5000번 포트에서 실행 됨!모듈 임포트
from flask import Flask, render_template, request
라우팅
라우팅은 URL과 특정 함수를 매핑하는 작업을 의미한다. Flask에서는 @app.route
데코레이터를 사용하여 URL 경로를 정의하고, 해당 경로에 접근했을 때 실행 될 함수를 지정한다.
이 때, 매핑되는 함수를 뷰 함수라고 한다
@app.route("/hello") # <- 이 부분이 라우팅을 위한 데코레이터
def index(): # /hello 라는 url에 접근했을 때, index라는 함수를 실행시킨다.
return "Hello, Flask!"
템플릿
Flask는 템플릿 엔진을 내장하고 있어, 동적으로 웹 페이지를 생성할 수 있다. 템플릿은 HTML 파일 내에 특별한 문법을 사용하여 작성되는데, Flask는 render_template
함수를 제공하여 템플릿 파일을 렌더링하고, 데이터를 전달할 수 있다.
@app.route('/')
def index():
name = "연한"
return render_template("index.html", name=name)
요청 데이터 처리
Flask는 클라이언트의 요청에 포함된 데이터를 처리할 수 있다. request
객체를 사용하여 요청 메서드(GET, POST 등) 및 데이터에 접근할 수 있다.
from flask import request
@app.route("/login", methods=["POST"])
def login():
username = request.form["username"]
password = request.form["password"]
# 로그인 처리 로직 작성