본문 바로가기
Programming/Python_Web

Flask강좌2 - Global Object: g, Response객체

by Wilkyway 2020. 12. 1.
반응형

1. __init__.py 수정

from flask import Flask, g, Response, make_response

app = Flask(__name__)
app.debug = True #use only debug!!

@app.before_request
def before_request();
	print("before_request!!!")
	g.str = "한글"
    
@app.route("/gg")
def helloworld():
	return "Hello World!" +getattr(g, 'str', '111')
    
@app.route("/")
def helloworld():
	return "Hello Flask World!!!!!!!"
    
@app.route("/res1")
def res1():
	custom_res = Response("Custom Response", 200, {'test':'ttt'})
	return make_response(custom_res)
    
@app.route("/test_wsgi")
def wsgi_test():
	def application(environ, start_response):
    	body = 'The request method was %s' %environ['REQUEST_METHOD']
        headers = [('Content-Type', 'text/plain'), ('Content-Length', str(len(body)))]
        start_response('200 OK', headers)
        return [body]
        
	return make_response(application)

@app.route("/gg")

 g: 글로벌 변수(Application Context영역), 방문자수 등 모든 사용자와 공유되어야 하는 변수

getattr(g, 'str', '111'): 글로벌 변수 g의 'str' 어트리뷰트를 표시하고, 'str' 어트리뷰트가 없을 경우 default값으로 '111'이 출력되도록 지정함.

Application Context: 모든 사람을 위한 영역

Session: 한 사람의 브라우저를 위한 영역

 

@app.route("/res1") 

Response 함수의 사용 예입니다. 

"Custom Response"는 표시할 문자열이고, 200은 응답 status, {'test':'ttt'}는 헤더 영역에 데이터를 보냅니다.

make_response는 스트림으로 데이터를 내려보냅니다.

 

@app.route("/test_wsgi")

body 부분에서 %연산자는 %뒤쪽에 선언된 변수가 %s 부분으로 대입됩니다.

headers는 키,값의 쌍으로 입력을 해 줍니다. 따라서 body의 길이에 해당하는 숫자도 str형태로 변환해줍니다.

start_reponse('200 OK', headers)는 200 OK status와 헤더를 보내주는 callback 함수입니다.

반응형

'Programming > Python_Web' 카테고리의 다른 글

Flask강좌4 - Flask_SQLAlchemy MySQL연동  (5) 2020.12.02
Flask강좌3 - Request  (0) 2020.12.01
Flask강좌1 - hello flask!  (0) 2020.12.01
Flask - IIS연동  (2) 2020.10.23
Flask - mysql 연동  (0) 2020.08.21

댓글