2014-04-14 6 views
2

플라스크 뷰에서 변수를 전달하는 방법flask : 뷰 함수에서 매개 변수 전달

편집 : 설명을 위해 사용자 (id)에 설정된 변수가 있다고 가정 해 보겠습니다. 물론이 변수는 로컬 변수이며 user_add()에 표시되지 않습니다. 지역을 보존하는 좋은 방법으로이 값을 user_add와 통신 할 수있는 방법이 있습니까?

나는이보기에 다음 코드 :

@app.route('/users', methods=['GET', 'POST']) 
def user(): 
    ... 
    var = setvar() 
    --- 
    return render_template('users.html') 

@app.route('/users/add', methods=['GET', 'POST']) 
def user_add(): 
    if request.method == 'POST': 
     ... 
     var = #somehow get id here 
     --- 
     return 'user added' 

나는 "/ 사용자/추가"로 아약스 게시물을하고있는 중이 야

$.ajax({ 
    ... 
    type: "POST" 
    url: "/user/add" 
    data: data, 
    ... 
}); 

편집 : 미학에 대한 VAR에 ID를 변경

+0

내장 된'id()'함수를 덮어 쓰지 마십시오. 편집 : 죄송합니다, 이드를 의미합니다. – msvalkon

+0

나는 당신이 평균 ID를 의미한다고 생각합니다! 그리고 이것은 실제 예제가 아닌 단지 샘플 코드 일뿐입니다. – knk

+0

또한'setid()'의 목적은 무엇입니까? 'user_add()'를 사용하여 사용자를 추가하거나 다른 목적으로이 id를 사용하면 데이터베이스에서 'id'를 생성하지 않아야합니까? – msvalkon

답변

7

정확한 사용 사례가 무엇인지 확실하지 않지만 아마도 Sessions을 살펴보십시오.

from flask import session 

@app.route('/users', methods=['GET', 'POST']) 
def user(): 
    ... 
    session['var'] = setvar() 
    --- 
    return render_template('users.html') 

@app.route('/users/add', methods=['GET', 'POST']) 
def user_add(): 
    if request.method == 'POST': 
     ... 
     var = session['var'] 
     --- 
     return 'user added' 

당신이 올바르게 사용하고 있는지 확인하기 위해 문서를 살펴해야합니까 :

당신이 뭔가를 할 수 있습니다. 위 내용은 기본 개념을 설명하기위한 것입니다.

+0

이것은 작동하지만 세션 쿠키를 사용합니다. 클라이언트를 거치지 않고 변수를 전달하는 방법이 있습니까? – knk

관련 문제