반원 블로그

Flask 자료 정리 01 - 앱 생성과 라우트 테스트 본문

2018~/Flask 자료 정리

Flask 자료 정리 01 - 앱 생성과 라우트 테스트

반원_SemiCircle 2019. 10. 10. 12:09

플라스크란

  • WSGI 애플리케이션을 위한 가볍고 강력한 프레임 워크(마이크로 프레임 워크).
  • 간편하고 빠르게 개발할 수 있다.

필수 준비환경

  • 파이썬
  • 플라스크 : pip install flask

예제 01/01.py - 문자열 띄우기


from flask import Flask

app = Flask(__name__) #Flask 객체 인스턴스 생성

#라우트 작업
@app.route('/')
def hello():
   return "Hello World"

if __name__=="__main__":
   app.run()
"""설명
1 : FLASK 클래스를 참조(가져오기)

3 : FLASK 인스턴스 생성. 첫번째 인자는 __name__으로 입력
__name__은 현재 모듈(파이썬파일) 이름으로 정해지는데,
서버를 담당하는 파일이 시작점(메인)일 경우에 __main__으로 변경되니 이점을 해결한 것이다.

6 : 데코레이터를 이용한 라우트 사용
라우트를 활용한 url 정의는 보안적으로도 좋다.
예전에는 url에 해당 html의 파일경로가 노출되었는데, 라우트는 이를 숨겨준다.

7 : 6 라우트의 View 함수에 해당된다.
View 함수는 데코레이터 바로 아래 있어야 한다.
"""

플라스크 프레임워크 작동 과정

라우팅이란?

  • 복잡한 URL과 URI를 쉽게 처리하도록 하는 기능
  • 플라스크에서는 route() 데코레이터(@) 를 사용

웹 실습시 주의사항

  • 2개의 서버를 돌리면 안된다.
  • 새롭게 실습 파일 만들었을 때는 반드시 이전 서버는 종료

예제 01/02.py - 라우트(route)추가하기

from flask import Flask

app = Flask(__name__) #Flask 객체 인스턴스 생성

#라우트 작업
@app.route('/')
def hello():
   return "Hello World"

@app.route('/flask/')
def flask():
   return "Hello flask"

if __name__=="__main__":
   app.run()
"""설명
10 : 라우트 패턴은 반드시 /로 시작해서 /로 끝나야 한다.
없으면 시스템 파일로 인식한다 ex) /robots.txt
"""

예제 01/03.py - 라우트 매개변수 전달(문자열)

from flask import Flask

app = Flask(__name__) #Flask 객체 인스턴스 생성

#라우트 작업
@app.route('/')
def hello():
   return "Hello World"

@app.route('/flask/')
def flask():
   return "Hello flask"

@app.route('/user/<userName>')
def get_userName(userName):
   return "Hello "+ userName

if __name__=="__main__":
   app.run()
"""설명
14 : 입력인자는 <매개변수>로 받을 수 있다.
이 때 View함수 매개변수명과 같아야 한다.
"""

예제 01/04.py - 문자열 이외 데이터 전달시

from flask import Flask

app = Flask(__name__) #Flask 객체 인스턴스 생성

#라우트 작업
@app.route('/')
def hello():
   return "Hello World"

@app.route('/flask/')
def flask():
   return "Hello flask"

@app.route('/user/<userName>')
def get_userName(userName):
   return "Hello "+ userName

@app.route('/userid/<int:userId>')
def get_userId(userId):
   return "user ID : {}".format(userId)

if __name__=="__main__":
   app.run()

"""설명
18 : 문자열 이외의 타입을 받을 때는 <타입:매개변수명> 으로 적는다.
실수는 <float:매개변수>  정수는 <int:매개변수>
"""

01/05.py - 응답데이터 간단하게 꾸미기

  • html 형식으로 return을 넣을 경우


from flask import Flask

app = Flask(__name__) #Flask 객체 인스턴스 생성

#라우트 작업
@app.route('/')
def hello():
   return "<h1>Hello World</h1>"

@app.route('/flask/')
def flask():
   return "<h3>Hello flask</h3>"

@app.route('/user/<userName>')
def get_userName(userName):
   return "Hello "+ userName

@app.route('/userid/<int:userId>')
def get_userId(userId):
   return "user ID : {}".format(userId)

if __name__=="__main__":
   app.run()


"""설명
8, 12 : html에서 h태그는 제목, 머리말 등을 표현해주는 대표적인 태그다.
h1~h6까지 존재한다.
"""
Comments