오모짱_ 2023. 7. 11. 11:58

Flask

웹 어플리케이션 개발을 위한 파이썬 프레임워크, 최대한 가볍게 개발하기 위해 Flask 사용^^

(파이썬 웹 개발 시 많이 쓰이는 프레임워크: Django)


Micro Web Framework: Flask

 

- 최소한의 구성 요소, 요구사항 제공

- 쉽고 필요에 따라 유연하게 사용 가능

- 쉽게 확장할 수 있도록 설계되어 있어 필요한 도구와 라이브러리 자유럽게 선택 적용 가능


Start Flask: Hello, World!

 

pip install Flask
from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)

run(debug=True) 명시하면 해당 파일의 코드를 수정할 때마다 Flask가 변경된 것 인식 -> 다시 시작

 

 


Route (URL ~ 웹페이지 연결)

 

웹 브라우저에서 url 방문하면 서버에 요청을 보내고, 서버는 그 요청을 처리해 브라우저에서 응답을 반환한다.

반환된 결과를 html 문서로 보내주면 웹 페이지를 브라우저가 띄워준다.

 

라우팅

:Flask에서 url 방문시 준비된 함수가 트리거되도록 바인딩하기 위해 route() 사용

@app.route('/path') 반드시 '/' 로 시작해야 한다


동적  URL

 

Flask는 바인딩 할 url을 지정할 때 <variable_name>을 명시하는 것이 가능

해당 변수는 함수에 인수 형태로 전달된다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
@app.route('/home')
def home():
    return 'Hello, World!'

@app.route('/user/<user_name>/<int:user_id>')
def user(user_name, user_id):
    return f'Hello, {user_name}({user_id})!'

if __name__ == '__main__':
    app.run(debug=True)

html 렌더링

 

@app.route() 아래 적어주는 함수에서 return 하는 응답은 일반 텍스트, 데이터, 등등 다양한 형식이 될 수 있는데

일반적으로 웹 페이지에서 렌더링 할 html 직접 반환

 

from flask import Flask

app = Flask(__name__)

@app.route('/')
@app.route('/home')
def home():
    return 
    '''
    <h1> Title </h1>
    <p> content </p>
    <a href="https://flask.palletsprojects.com">Flask hompage</a>
    '''

@app.route('/user/<user_name>/<int:user_id>')
def user(user_name, user_id):
    return f'Hello, {user_name}({user_id})!'

if __name__ == '__main__':
    app.run(debug=True)

 

더보기

POSTMAN 사용한 로컬 API 테스트

https://www.postman.com/