2012-08-03 2 views
1

몇 가지 기본보기가 포함 된 간단한 Flask 앱이 있습니다. 이러한 뷰 중 하나를 결과라고합니다. GET을 사용하여 URL 매개 변수를 가져온 다음 매개 변수를 사용하여 일련의 작업을 수행하고 마지막으로 render_template()을 사용하여 템플릿을 렌더링 한 다음 계산 된 값을 전달합니다.매개 변수에 따라 다른 URL로보기 라우팅

http://127.0.0.1:5000/result?s=abcd&t=wxyz 

내가 뭘 원하는 것은 대신 결과보기에서 템플릿을 렌더링이다, 나는 새로운보기로 리디렉션하고 싶습니다 (하자 : 렌더링에

은 결과 URL은 다음과 같이 보입니다 마지막으로 호출), 계산 된 값을 리디렉션과 함께 전달하고 거기에서 템플릿을 렌더링합니다. 왜이 모든 일을합니까? 최종 URL을 대신 다음과 같이 표시하고 싶습니다.

http://127.0.0.1:5000/final/abcd 

제목이 다소 모호한 경우 죄송합니다.

답변

2

최종 URL에서 "ABCD는"실제 결과가 될 수있는 가장 간단한 해결 방법 : 그것은 할 수없는 경우

@app.route("/result") 
def calculate_result(): 
    s, t = request.args.get("s"), request.args.get("t") 
    # Calculate result with s and t 
    return redirect(url_for(".display_results", result=result)) 

@app.route("/final/<result>") 
def display_results(result): 
    return render_template("results.html", result=result) 

는, 당신은 대신 session를 사용할 수 있습니다

@app.route("/result") 
def calculate_result(): 
    s, t = request.args.get("s"), request.args.get("t") 
    # Calculate result with s and t 
    session["result"] = result 
    return redirect(url_for(".display_results", result=result)) 

@app.route("/final/abcd") 
def display_results(): 
    result = session.get("result") 
    return render_template("results.html", result=result) 
+0

내가 사용하여 시도 두 번째 방법은 아무 소용이 없습니다. URL은 성공적으로 표시되지만 결과 (calculate_result()는 3 개의 변수를 저장하며 그 중 두 개는 dicts 임)가 세션에서 이월되지 않습니다. 또한 템플릿은 렌더링되지만 렌더링되지 않습니다. 페이지에는 CSS가없고 전달 된 변수는 모두 없음 유형입니다. –

+0

@ Cyph0n - 코드에 [SECRET_KEY'] (http://flask.pocoo.org/docs/api/#flask.Flask.secret_key)를 설정 했습니까? 세션이 하나도 없으면 작동하지 않습니다. –

관련 문제