Flask

[Flask] 파이썬 Flask 기능 - "url_for"

민돌v 2021. 10. 7. 15:10

Flask 에서는 url을 링크할 때  url_for 이라는 재미난 기능이 있다.

 

 

url_for 함수


url_for 함수는 url 주소값을 가져 온다. url_for( ) 괄호안에 route 함수 명을 넣으면 해당 route가 가지는 url 주소를 가져온다. 그리고 괄호에 다른 항목은 변수명이다. 변수 명을 넣으면 변수명을 포함한 주소값을 가져온다. 

 

ex)

redirect (url_for) 을 이용하여 main 함수로 주소를 매핑시켰다. 함수명 뒤에 전달해 줄 값, 또는 매개변수를 적어준다.

@app.route('/detail/<keyword>')
def detail(keyword):
    status_receive = request.args.get("status_give")
    # API에서 단어 뜻 찾아서 결과 보내기
    r = requests.get(f"https://owlbot.info/api/v4/dictionary/{keyword}", headers={"Authorization": "Token 865ffe70f9401b95e6e8c92e13a45404717abd3c"})

    if r.status_code!=200 :
        return redirect(url_for("main", msg="단어가 이상해"))
    result = r.json()
    print(result)
    return render_template("detail.html", word=keyword, result=result, status=status_receive)

 

 

 

html 파일이나, js 에서도 사용할 수 있다.

 

ex)

메타 태그나 파비콘의 링크 맵핑을 url_for을 이용하였다.

<meta property="og:image" content="{{ url_for('static', filename='logo_red.png') }}"/>
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">