ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 플라스크 객체 g
    web/flask 2019. 11. 18. 20:46

    플라스크는 기본적으로 제공해주는 기능들이 존재함 

    기본으로 제공해주는 기능들을 다룰려고 함

    Global Object : g

    from flask import g

    플라스크라는 모듈에서 g라는 전역 변수를 받음

    관련 내용은 다음과 같음

    from flask import Flask,g
    
    
    app = Flask(__name__)
    app.debug = True # 이제부터 app.~~ 형식으로 필요한 부분을 하나씩 추가하면 됨
    
    @app.before_request
    # request 요청을 처리하기전에 한번 어떠한 동작을 해달라고 하는 부분
    # 즉 어떠한 요청이 들어오더라도 before_request는 무조건 한번 타게 됨
    def before_requset():
        print("before_request!!!")
        g.str = "한글"
        # 웹 애플리케이션은 context라는 것을 가짐
        # 애플리케이션이 실행 될때는 어떠한 영역을 가짐
        # 그중에는 애플리케이션 컨텍스트라는 영역과 비교되는 세션 컨텍스트라는 영역이 존재
        # 세션 컨텍스트는 해당 웹 애플리케이션으로 들어오는 하나의! 브러우저로 부터 들어오는 요청을 뜻함
        # 애플리케이션 컨텍스트는 해당 웹 애플리케이션으로 들어오는 모든 불특정 다수의 브라우저 요청을 뜻함
        # 이중 g라는 것은 애플리케이션 컨텍스트의 영역임
        # 애플리케이션 컨텍스트 = 모든 사용자가 공유
        # 세션 컨텍스트 = 한명의 사용자만 공유 ( 로그인정보 )
    @app.route("/")
    def helloworld():
        return "hello world" + getattr(g, 'str', '111')
    
    

     

    위와 같이 g라는 객체를 사용하면 불특정 다수의 모든 사용자들을 제어할 수 있음

     

    g객체 사용 예시

    • A라는 사람이 모든 사람이 보아야할 단톡방을 생성할 때 만약 A라는 사람과 단톡방에서 대화를 하려면 다른 사용자들은 A의 서버와 같은 곳에 접속을 해있어야함
    • 이런 경우에 g객체를 사용해서 A 라는 사람이 있는 서버로 안내를 해준다면 모든 사용자는 A와 같은 서버로 들어 올 수 있음
    • 즉 before_request로 g객체를 사용해서 "한글" 이라는 값을 주었다면
    • 접속하는 모든 사용자는 before_request인 요청전에 애플리케이션 컨텍스트 영역으로 "한글" 이라는 값을 가지고 모든 요청이 처리가 됨

    'web > flask' 카테고리의 다른 글

    WSGI  (0) 2019.11.19
    웹 서버와 C.G.I  (0) 2019.11.19
    플라스크의 구동 방식  (0) 2019.11.18
    플라스크 기본 설치  (0) 2019.11.18

    댓글

Designed by Tistory.