인프런 커뮤니티 질문&답변

J군님의 프로필 이미지
J군

작성한 질문수

파이썬 플라스크(Flask) 기반 웹 개발 및 업무 자동화 서비스 활용

라우팅과 렌더링, 정적 파일 만들기

몇 가지 질문드려요~

작성

·

174

0

안녕하세요. 좋은 수업 감사드립니다.

강의 중 몇가지 질문드리고 싶어서요.

먼저 

with app.test_request_context():

를 쓰는 용도를 좀 자세히 알려주실 수 있을까요? 왜 필요한지 아직 감이 않와서요.

둘째로 html에서 js파일이나 css파일 부를때 url_for를 쓰면 특별한 장점이 있나요?? 

답변 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 등 정보를 알려주시면 답변이 쉬울 것 같습니다.

감사합니다.

앗 열렸습니다 답변 감사합니다 ㅠㅠ

0

J군님의 프로필 이미지
J군
질문자

친절한 답변 감사드립니다^^

J군님의 프로필 이미지
J군

작성한 질문수

질문하기