작성
·
174
답변 3
2
url_for 함수는 라우팅이 설정된 함수에 대한 URL을 얻어내기 위해 사용하는 함수입니다. URL을 직접 지정하지 않아도 함수 이름으로 간편하게 호출이 가능합니다. 사용시 함수의 이름과 URL에 전달하는 변수 부분에 대한 다수의 키워드를 인자로 받을 수 있습니다.
예를 들어 다음과 같은 코드가 있다면
@app.route('/')
def index():
return render_template("main.html")
@app.route('/user/<name>')
def profile('name'):
return render_template("profile.html")
url_for 함수를 사용했을 때 다음과 같이 됩니다. html에서 js 파일이나 css 파일을 호출할 때도 간편하게 함수 이름으로 호출이 가능하고, 라우팅시 요구하는 변수도 맞춰서 보내줄 수 있습니다.
url_for('index') => 결과: /
url_for('index', keyword='moon') => 결과: /?keyword='moon'
url_for('profile', name='user01') => 결과: /user/user01
그리고 위 과정처럼 클라이언트가 서버에게 url 접속 등 HTTP 요청을 테스트할 때 사용하는 용도로 사용하는 함수가 test_request_context() 함수입니다. 함수가 호출되면 테스트할 수 있는 객체가 생성되어 앞서 제시한 결과 값과 같은 문구가 출력됩니다.
url_for() 함수의 간편하게 함수 이름으로 url을 지정할 수 있고 변수를 전달할 수 있다는 특징 때문에 나중에 자주 쓰기 때문에 test_request_context() 함수로 테스트해보시면서 이런식으로 작동하는구나를 확인해보시면 되겠습니다.
0
자세하게 코드 상황과 프로그램 실행 콘솔, 웹 페이지에 입력한 접속 페이지 URL 등 정보를 알려주시면 답변이 쉬울 것 같습니다.
감사합니다.