웹페이지의 가장 큰 장점 중의 하나는 다른 문서를 링크할 수 있다는 것이다. 웹페이지를 만들다보면 내 웹페이지의 다른 곳을 링크해야 할 일도 생긴다. 개발중인 웹페이지라면 로컬 컴퓨터에서 작업하기 때문에, 로컬 호스트 주소를 입력해야 한다. 하지만 이렇게 하면 나중에 배포할 때 로컬 호스트 주소를 실제 주소로 다 변경해줘야 하는 리스크가 생긴다.
오늘은 파이썬 플라스크(flask)에서 내부 링크를 만드는 방법에 대해서 알아보도록 하겠다.
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함수에 대해서 알아보았다. 알면 별 것 아닐 수 있지만, 모르면 굉장한 노가다와 스트레스를 받아야 한다. 이번 기회에 잘 익혀두어서 사용하기 바란다.
'파이썬 > 웹사이트 개발' 카테고리의 다른 글
웹사이트 만들기, HTML,CSS,JAVASCRIPT,JQUERY 알아보기 (0) | 2022.08.12 |
---|---|
파이썬 flask development 모드 실행하는 2가지 방법은?! (0) | 2022.05.22 |
파이썬 플라스크 웹페이지 만들기 후기 - 전역변수를 사용하지 말자! (0) | 2022.04.14 |
파이썬 플라스크 사용자 입력 받는 2가지 방법 - GET과 POST 알아보기! (0) | 2022.04.13 |
파이썬 플라스크 이미지 삽입, img 태그 사용하는 법은?! (0) | 2022.04.11 |
파이썬애니웨어(pythonanywhere) 웹페이지 폴더 경로 설정하는 방법은?! (0) | 2022.04.10 |
파이썬 플라스크 웹페이지 개발 쉽게 하는 방법은?! (0) | 2022.04.08 |
파이썬 플라스크(flask) CSS 적용하기! (0) | 2022.04.07 |