반응형
목차
url_for 란? (인자값이 없는 경우)
url_for는 flask 라이브러리에서 제공하는 함수입니다. syntax는 아래와 같습니다.
url_for(url에 연결된 함수명, 전달할 인자값)
url_for 함수는 함수값을 인자로 받습니다. 그리고 인자값(argument)도 보낼 수 있습니다. 이때 flask의 redirect를 연결해서 사용해야 합니다. 아래 예제를 보시면 쉽게 이해 됩니다.
예제는 인자 값이 없는 경우를 사용해보겠습니다.
코드>>
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/a_page')
def go_a():
return 'This is a_page'
@app.route('/c_page')
def go_c():
return redirect(url_for('go_a'))
if __name__ == '__main__':
app.run(port="9999",debug = True)
결과>>
"http://127.0.0.1:9999/c_page" 에 접속하였고 결과는 아래와 같이 a_page로 이동하였습니다.
주석>>
1번 라인: url_for 사용을 위해 redirect와 url_for를 import 합니다.
10번 라인: /c_page에 접속할 경우 go_a 함수가 있는 url로 이동하라는 명령입니다.
url_for 란? (인자값이 있는 경우)
코드>>
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/a_page')
def go_a():
return 'This is a_page'
@app.route('/b_page/<c_data>')
def go_b(c_data):
return 'This is b_page with %s' %c_data
@app.route('/c_page/<c_value>')
def go_c_data(c_value):
print(c_value)
if c_value == "a":
return redirect(url_for('go_a'))
else:
return redirect(url_for('go_b',c_data = c_value))
if __name__ == '__main__':
app.run(port="9999",debug = True)
결과>>
"http://127.0.0.1:9999/c_page/a" 에 접속할 경우 아래와 같이 나옵니다.
"http://127.0.0.1:9999/c_page/hi" 에 접속할 경우 아래와 같이 나옵니다.
주석>>
15~18번 라인: c_value를 받아서 c_value의 값에 따라 다른 페이지로 이동합니다. c_value의 값이 "a"가 아니면 해당 인자(argument)를 go_b 함수에 인자 값으로 보내 줍니다.
반응형
'파이썬(Python) > Flask' 카테고리의 다른 글
[Python] Flask와 Jinja2 사용하여 데이터 주고 받기 (0) | 2021.11.19 |
---|---|
[Python] flask form 값 받기 (GET, POST) (0) | 2021.11.17 |
[Python] flask 변수 사용 방법(Variables, string,int,float) (0) | 2021.11.13 |
[Python] flask 기본 예제, route(), run()함수 사용방법 (0) | 2021.11.12 |
[Python] Flask란? (WSGI, Werkzeug, Jinja2, Web framework) (0) | 2021.11.11 |