이전의 포스트에서는 Flask를 사용하기 이전에 시작하는 법을 작성했습니다.

이번에는 파이썬에서 값을 전달하는 방법을 알아보도록 하겠습니다.


Javascript 혹은 HTML 자체로 값을 생성해서 웹을 사용한다는 건 사실상 불가능합니다.

PHP와 같은 플랫폼에서도 시스템 내부(백엔드)에서 MySQL과 연동한다거나 값을 긁어와 뿌려주는 기본적인 기능이 있는 것처럼, Python Flask에도 이러한 기능이 있습니다.


단, Flask에서는 마치 함수 내에 인자값을 던져주듯이 한다는 점이 조금 독특합니다.


다른 플라스크 예제는 아래의 링크를 살펴봐주시기 바랍니다~



[Python Flask] 웹 페이지 만들기 01 - 환경 설정

[Python Flask] 웹 페이지 만들기 02 - 기본 파일 작성하기

[Python Flask] 웹 페이지 만들기 04 - Bootstrap 연동하기

[Python Flask] 웹 페이지 만들기 05 - MySQL 연동하기(pymysql)

[Python Flask] 웹 페이지 만들기 06 - MySQL 연동하기(DB 클래스 생성)






01. Python에서 작성한 값 넘겨주기

먼저 이전에 작성했던 index.py 코드에 다음과 같은 값을 넣어주었다고 가정합시다.

# file name : index.py
# pwd : /project_name/app/main/index.py
from flask import Blueprint, request, render_template, flash, redirect, url_for
from flask import current_app as current_app

main = Blueprint('main', __name__, url_prefix='/')

@main.route('/main', methods=['GET'])
def index():
    testData = 'testData array'

    return render_template('/main/index.html', testDataHtml=testData)


위에 표시된 10번과 12번 라인은 조금 추가되고 수정된 영역입니다.


먼저 10번 라인은 여러분이 데이터를 HTML 파일에 전달하고자 하는 데이터입니다.

굳이 String 값일 필요는 없지만, 저는 대부분 String 값 혹은 Dictionary 데이터를 전달하는 것을 선호합니다.

(기본적으로 MySQL에서 나온 값이 Dictionary 형태를 띄기 때문입니다. MySQL은 다음 포스트에서 다루도록 하겠습니다.)


이제 이 값을 render_template 함수의 두 번재 인자값으로 넣어주려고 합니다.

12번 라인에서 testDataHtml 이라는 변수 이름에 String 데이터가 저장된 testData를 넣어줍니다.

변수 이름은 아무렇게나 지어도 상관없습니다~


이제 이 데이터를 어떻게 전달 받는지가 중요합니다.




02. Python에서 넘겨받은 값 사용하기

HTML 소스를 보시겠습니다.

<html>
    <head>
        This is Main page Head<br>
    </head>
    <body>
        This is Main Page Body<br>
        And This is Accepted Data : {{testDataHtml}}
    </body>
</html>


위의 소스코드는 이전의 소스코드보다 조금 추가된 게 있습니다. ㅎㅎ

단, 유의해서 보실 부분이 바로 7번 라인입니다.


자세히 보시면 중괄호가 두 번 되어있고, Python에서 넘겨준 인자값의 변수 이름이 그대로 들어가 있는 것을 볼 수 있습니다.

즉, 우리가 저장했던 값이 저 변수에 들어가 있으니, 이 값을 불러와 뿌려주겠다는 의미입니다.





03. 결과


testData array라는 값이 제대로 출력되는 것을 볼 수 있습니다.

이를 활용하여 여러 가지를 할 수 있을 것입니다.




+ Recent posts