flask를 사용하는데 아무것도 모르고 인터넷 소스만 복붙해서

구동원리에 대해서 공부하기 위해 작성함


@app.route

  • URL 규칙을 받아 해당하는 규칙의 URL로 요청이 들어온 경우, 등록한 함수를 실행한다.
  • 파라미터는 URL + 엔드포인트 + 옵션으로 구성되어 있다.
  • URL은 127.0.0.1 + 5000(테스트 프로토콜 포트)가 디폴트로 설정되어 있다.
  • Flask의 URL규칙은 Werkzeug의 라우팅 모듈에 기반한다.
    • 라우팅이란, 패킷의 위치를 추출하여 그 위치에 대한 최적의 경로를 선택하는 과정이다.
  • 옵션은 메소드 옵션을 어떻게 핸들링 할 것인지를 의미하며 HTTP프로토콜의 GET이 디폴트이다.
    • methods = ['GET', 'POST'] 로 GET과 POST를 둘 다 사용할 수 있다.
  • 앞의 @는 장식자라고 하며 Flask에서는 URL 연결에 사용한다.

 

render_templates

  • html파일을 렌더링 해 지정된 화면을 출력할 수 있다.
  • Jinja2 템플릿 엔진을 사용한다.
  • 첫번째 인자로 렌더링 할 HTML 파일명을 넘겨주고 그 이후에는 HTML 파일에 값을 전달할 변수를 작성한다.
  • Jinja2 템플릿 엔진은 렌더링 할 파일을 특정 디렉토리에서 찾기 때문에 templates라는 디렉토리를 생성해서 그 안에 HTML을 작성해야 한다.

 

url_for

  • 작성한 함수의 URL을 빌드해준다.
  • 알아서 내부 웹서버 주소로 바꿔주기 때문에 로컬에서 작업하다가 나중에 서버를 배포하고 실제 주소로 바껴도 수정해줄 필요가 없다.

+ Recent posts