2017-11-03 24 views
0

순차 워크 플로우를 나타내는 웹 애플리케이션을 빌드해야합니다. 각 페이지에서 사용자는 양식을 채우고 제출하면 다음 페이지로 리디렉션됩니다. 양식은 서로 의존하지 않습니다. 그래서 예를 들어FLASK 순차적 워크 플로우를 동적으로 변경하는 웹 애플리케이션

는,이 순서의 순서는 시간이 지남에 따라 자주 변경, 또는 될 것이라고 아주 잘 수 A, B, C, D, E, F 워크 플로 아직

A -> B -> C -> D -> E -> F 

것 우리는 6 개 페이지를 가지고 있다고 동적 정보를 기반으로 각 사용자별로 새로 작성됩니다. 새로운 시퀀스는

따라서
B -> A -> C -> F 

I 어플리케이션, 예를 들어로 하드 코딩 서열을 방지하고자하는 (2 단계를 재정렬 밖으로 이탈) 될 수있다, 예를 들어 제안 된대로 here.

내 현재의 접근 방식은

return next(request.url_rule.rule)

이 더 나은 (가장 좋은 방법은?) 거기에 플라스크의 방법으로 각보기의 함수 반환이

def next(current_page) 
    if current_page == "/step_a": 
     return redirect(url_for("/step_b")) 
    elif current_page == "/step_b": 
     return redirect(url_for("/step_c")) 
    ... 

같은 디스패처 기능 next()을 가지고하는 것입니다 (특히 제안 된 here과 같이)보기 기능에 하드 코드하지 않고 순차 워크 플로를 정의하고 쉽게 적용 할 수 있습니까?

답변

0

문제 설명에 따라 문제를 해결하는 방법은 1 가지 이상일 수 있습니다. 당신이 이미 말했던 하나. 기타는 내부 라우팅과 같은 것일 수 있습니다. 여기에는 요청 랩퍼가 관련됩니다. 다음과 같은 내용 :

from flask import Flask, redirect, request, render_template 
app = Flask("the_flask_module") 

@app.route('/', methods=["GET", "POST"]) 
def post_redirect_get(): 
    if request.method == "GET": 
     return render_template("post_redirect_get.html") 
    else: 
     # Use said data. 
     return redirect("target", code=303) 

@app.route("/target") 
def target(): 
    return "I'm the redirected function"