반원 블로그

Flask 자료 정리 02 - 템플릿 본문

2018~/Flask 자료 정리

Flask 자료 정리 02 - 템플릿

반원_SemiCircle 2019. 10. 12. 20:24

파이참에서 html 관련 내용

파이참에 코드를 작성하면 각 브라우저에서 어떻게 보일지 연결프로그램 아이콘이 존재한다.

그런데 이걸로 열면 깨진다.

파일 탐색기에서 열면 다음처럼 나온다

html 간단 내용

  • 마크업 언어. 태그를 이용하여 요소(버튼, 레이블 등)를 표현
<html>
   <body>
       <ul>
           <li>사과</li>
           <li>오렌지</li>
           <li>배</li>
       </ul>
   </body>
</html>

html 템플릿 렌더

templates폴더를 생성하고 위에서 만든 a.html을 다음 위치로 이동시킨다

여기서 01.py는 이번에 실습할 파이썬 파일이다.

예제 02/01.py - templates 폴더를 이용한 html 렌더링 예제

from flask import Flask, render_template

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

@app.route('/')
def main():
   return render_template("a.html")

if __name__=="__main__":
   app.run()
"""설명
1 : render_template : 템플릿을 보여주는 함수
기본적으로 현재프로그램 위치의 templates 폴더를 탐색한다.

7 : html 파일을 요청에 응답가능한 템플릿으로 반환한다.
"""

라우트에서 uri 값을 알아내는 함수에 대한 설명

  • 교육내용 제외/포함 검토
  • Flask 클래스에는 test_request_context()란 메소드(함수)가 존재한다.
    이는 클라이언트가 서버에게 url접속(즉, HTTP 요청(request))을 테스트하는 용도로 사용되며, 호출되면 테스트할 수 있는 객체가 생성성된다.
  • 위 예제에서 생성된 객체를 url_for() 함수를 이용하여 요청 테스트를 해보려한다.
  • url_for() 함수는 나중에 자주 쓰기때문에 완벽하게는 몰라도 이런식으로 작동하는 구나 정도는 알아야 한다.

예제 01/05.py에서 확인해보는 "라우트에서의 uri 값의 확인 과정"


#이전 01/05.py를 참고

from flask import Flask, url_for

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__":
   with app.test_request_context():
       print(url_for('hello'))
       print(url_for('get_userName', userName = "park"))
"""설명
25 : Flask 인스턴스 안의 test_request_context() 호출
26 : 테스트할 View함수명 작성

이 실습은 View함수와 연결된 uri를 어떻게 찾아내는지 알아보고자 함임.
"""

Comments