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">
'Flask' 카테고리의 다른 글
[Flask] 웹페이지 회원가입, 로그인 기능 구현하기(원리) - hashlib, JWT, Token, Cookie (0) | 2021.10.08 |
---|---|
Python : 'str' object has no attribute 'decode' 에러 해결 (0) | 2021.10.08 |
[Flask] jinja2 템플릿 언어 (진자 템플릿) (0) | 2021.10.07 |
파비콘(Favicon) 생성하기 - 파비콘이란 (0) | 2021.10.07 |