Python 프레임워크 - Flask

2020. 7. 14. 20:20캐리의 데이터 세상/캐리의 데이터 공부 기록

반응형

파이썬 프레임워크 Flask, 템플릿 엔진 Jinja2

 

Django vs Flask

 

파이썬의 대표적인 프레임워크 Django와 Flask에 대해 개발자들이 꼽은 장점들 사이트에서 가져왔다. 수업에서는 Flask에 대해 하루종일 실습했는데, 넘사벽이였던 스프링 프레임워크를 한달 전에 이미 맛을 보고 와서인지 조금은 장벽이 낮아진 느낌.

Django Flask
Rapid development Lightweight
Open source Python
Great community Minimal
Easy to learn Open source
Mvc Documentation

sources : 디장고 플라스크 비교 링크

 

 

 

Top Django projects:

Most popular Django projects

 

Top Flask projects:

 

파이썬 플라스크 프레임워크
Most popular Flask projects

image sources  유명한 django와 Flask 활용 프로젝트

 

 

Flask py파일 기본 화면. 불러 들일 페이지 및 내용에 따라 import 추가.

from flask import Flask,render_template,request

# 1. import부터 / html 불러들이기위해 render_template / client로부터 넘어오는거 받기 위해 request

 

app = Flask(__name__)

# 2. 개체생성

 

# @app.route에 요청 주소값

 

@app.route('/')

def index():

    return render_template('index.html')

# 3.요청 처리 (스프링에서의 controller 역할. 최종적으로 return에서 view 페이지 요청했던것과 비슷한 역할.)

 

@app.route('/home')

def home():

    return "Welcome home"

#5. 주소창에 /home입력시 이동, 화면창에 리턴값 표시

 

@app.route('/user/<username>')

def show_user_profile(username):

    return 'User %s'%username

# url이/user/<username> 식으로 가져오는 경우에는 함수안에 매개변수 username 적어야.

@app.route('/user/<username>/<int:age>')

def show_user_profile_age(username,age):

    return 'Username%s, 나이%d'%(username,age)

# 7 데이터타입 지정해서 호출하는것도 가능


if __name__== '__main__':

    app.run(debug=True, port=5000)

# 4.실행

 

작업하는 같은 경로상에 templates, static 폴더를 만들어 준다.

templates 폴더 - html 

sstatic 폴더 - css, js, image등

 

파이썬 템플릿 엔진 진자2

Jinja2는 파이썬용 템플릿 엔진으로, Flask 웹프레임워크 사용할 때 Jinja2로 써줘야함.

Jinja 템플릿 문서 설명 바로가기

 

예시

 

파이썬 진자2 문법
jinja2_base template

파이썬 문법에서 중괄호나 %등으로 감싸 주며 구분.

{% block %} 모든 블록 태그는 하위 템플릿이 템플릿의 해당 자리 표시자를 재정의 할 수 있음을 템플릿 엔진에 알려줌

 

{% ... %} for Statements
{{ ... }} for Expressions to print to the template output
{# ... #} for Comments not included in the template output
#  ... ## for Line Statements

 

extends로 상속, js, css,html 연동하는 부분까지 지난번 자바+스프링으로 웹 구축하는 것과 같은 과정을 밟고 있는 중.

Bootstrap으로 웹페이지 틀 만들어서 Form - Table 값 받고 출력, 파일 업로드 등까지 다뤘는데 다시 만들어봐야겠다. API 볼수록 내용은 방대하고 하면 할수록 자바,스프링,파이썬 기본 문법 했던 것들이 계속 반복되니 헷갈리는 부분은 그때 그때 정리해야 할듯.

 

 

반응형