1. HTML Escaping /변수 전달 받기
Flask는 route 라는 녀석을 통해 URL이 정해진다.
@app.route("/") 일 경우, IP 이후, 아무것도 없으면 아래 함수를 수행한다.(http://127.0.0.1/)
다른말로 URL마다 route 를 개별적으로 설정해 주어야 하는데,
매번 바뀌거나 개별로 할당 할때 마다 route 를 생성해주는 건 효율성이 떨어진다.
그래서 변수를 받아서 route를 추가할 수 있는 방법이 아래의 방법이다.
@app.route("/<name>") : name 을 URL 에서 입력되면 해당 결과를 return 에 포함하여 전달할 수 있다.
2가지가 중요한데,
1번째는 name 의 종류가 많아지더라도 1개의 route만 설정하면 된다는 것이고,
2번째는 입력 받는 name에 따라 개별적인 결과물을 보여줄 수 있다는 것이다.
from flask import Flask
app = Flask(__name__)
from markupsafe import escape # 탈출문자 및 유니코드 정상 처리용
@app.route("/<name>")
def hello(name):
return f"Hello, {escape(name)}!"
app.run(port = 80, debug=True)
처럼 사용하면, 입력된 'whosetech'를 route에서 개별 생성하지 않아도 실행할 수 있다.
return 에서 입력된 항목에 따라 결과가 출력되는 걸 추측할 수 있는데,
markupsafe 를 사용하지 않아도 결과가 출력 가능하나, HTML 전달 시, 에러 요소를 줄일 수 있어 사용하는게 좋다고 한다.
물론 아래처럼 markupsafe를 사용 하지 않고, f-string 이나 .format 으로 사용하더라도 구문만 맞다면 정상적으로 동작한다.
from flask import Flask
app = Flask(__name__)
#from markupsafe import escape
@app.route("/<name>")
def hello(name):
return "Hello, {}!".format(name) # 방법 1
#return f"Hello, {name}!" #방법 2
app.run(port = 80, debug=True)
2. Routing
위에서 먼저 언급된 URL과 관련된 Routing 이다.
from flask import Flask
app = Flask(__name__)
@app.route('/') #http://127.0.0.1/
def index():
return 'Index Page'
@app.route('/hello') #http://127.0.0.1/hello
def hello():
return 'Hello, World'
app.run(port = 80, debug=True)
URL에 따라 다른 web_page(결과)를 보여줄 수 있다.
03. Flask / D-03 (0) | 2022.07.21 |
---|---|
01. Flask / D-01 (0) | 2022.07.20 |
Flask 시작?? (0) | 2022.07.20 |
댓글 영역