웹페이지의 가장 큰 장점 중의 하나는 다른 문서를 링크할 수 있다는 것이다. 웹페이지를 만들다보면 내 웹페이지의 다른 곳을 링크해야 할 일도 생긴다. 개발중인 웹페이지라면 로컬 컴퓨터에서 작업하기 때문에, 로컬 호스트 주소를 입력해야 한다. 하지만 이렇게 하면 나중에 배포할 때 로컬 호스트 주소를 실제 주소로 다 변경해줘야 하는 리스크가 생긴다.

 

오늘은 파이썬 플라스크(flask)에서 내부 링크를 만드는 방법에 대해서 알아보도록 하겠다.

 

 

URL

 

 

1. 로컬호스트 주소로 링크 넣기

아래와 같이 자신의 웹페이지의 다른 곳으로 이동하는 링크가 있다고 해 보자. 개발중이라면 로컬호스트에서 웹서버가 구동되기 때문에, 보통 아래와 같이 주소를 입력해야 한다.

 

<!doctype html>
<html>
  <head>
  <link rel="stylesheet" href="{{ url_for('static', filename='css/w3.css') }}">
  </head>
  <body>
  <div class="w3-container w3-center">
    <h2>{{ subject }}</h2>
    <a href="http://127.0.0.1:5000/hello">내 웹싸이트의 hello로 이동합니다.</a>
  </div>
  </body>
</html>

 

 

2. url_for함수 이용하기

하지만, 위와 같이 입력하면 배포할 때 웹서버 주소가 바뀌기 때문에 사용할 수 없다. 이를 방지하기 위해 url_for함수를 이용하면 좋다. 알아서 내부 웹서버의 주소로 바꿔주기 때문이다. 위의 경우에는 아래와 같이 작성할 수 있다.

 

<!doctype html>
<html>
  <head>
  <link rel="stylesheet" href="{{ url_for('static', filename='css/w3.css') }}">
  </head>
  <body>
  <div class="w3-container w3-center">
    <h2>{{ subject }}</h2>
    <a href={{ url_for('hello') }}>내 웹싸이트의 hello로 이동합니다.</a>
  </div>
  </body>
</html>

 

 

Recommendation 포스팅

 

 

URL에 파리미터 값을 넣고 싶다면 아래와 같이 넣을 수 있다. '파라미터 = 값'의 형태로 넣어주면 된다. 추가로 계속넣고 싶다면 ,(콤마)를 찍고 계속 입력해주면 된다. 단,  값을 ""(쌍따옴표)로 감싸야 한다는 것을 주의하자.

 

<!doctype html>
<html>
  <head>
  <link rel="stylesheet" href="{{ url_for('static', filename='css/w3.css') }}">
  </head>
  <body>
  <div class="w3-container w3-center">
    <h2>{{ subject }}</h2>
    <a href={{ url_for('hello', variable="foo", act="do") }}>내 웹싸이트의 hello로 이동합니다.</a>
  </div>
  </body>
</html>

 


플라스크 웹서버를 띄우고 위의 링크를 클릭하면, 아래와 같이 url에 파라미터로 값이 잘 입력된 것을 확인할 수 있다.

 

 

플라스크 실행결과

 

 

참고로 파이썬 코드를 첨부하면 아래와 같다.

 

# coding = utf-8
 
from flask import Flask, render_template
 
 
app = Flask(__name__)
 
@app.route("/")
def index():
 
    return render_template("url_for_test.html", subject = "안녕하세요.")
 
@app.route("/hello/")
def hello():
    return "Hello Flask!"
 
if __name__ == "__main__":
    app.run()

 

 

오늘은 이렇게 플라스크(flask)에서 내부 링크를 만드는 방법, url_for함수에 대해서 알아보았다. 알면 별 것 아닐 수 있지만, 모르면 굉장한 노가다와 스트레스를 받아야 한다. 이번 기회에 잘 익혀두어서 사용하기 바란다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기