2017-08-03 9 views
0

私は複数のレンダリングテンプレートを持たなければならないアプリケーションがあり、そのうちのいくつかは変数を保持する必要があります。私が今持っているものの1つのレンダリングテンプレートから別のレンダリングテンプレートに変数を渡す

例:

@app.route('/', methods=['POST','GET']) 
def index(): 
    if request.method == 'POST': 
    newTitle = request.form['title'] 
    newDescription = request.form['description'] 
    newLeftDesctiption = request.form['leftdescrib'] 
    return render_template('body.html', random = projectName, 
          title = newTitle, 
          desc = newDescription) 

は、ここで私はテンプレートに属性を渡している、今、私は達成するのが大好きだが、新たな機能にそれらの属性を渡すことです、と呼ばれるボディを言うことができます別のルートでは、関数は属性を取得してテンプレートに渡し、別のルートを使用して別の関数に渡すことができます。

このようにして、誰かがprojectnameを選択した後、POSTが起こったとします。プロジェクト名を示す別のテンプレートがありますが、その変数は変数projectnameが "x"を格納していることを認識しています。

これは可能ですか?

+1

キーパーは、あなたがそのために 'session'を使用することができます言うように。あなたがそれを見かけることがないなら、これはフラスコの膨大な量をカバーする優れたチュートリアルです - https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-v-user-logins – Craicerjack

答えて

-1

あなたはおそらくそのためSessionを使用する必要があります。

from flask import Flask, session 
app = Flask(__name__) 
app.secret_key = 'any random string' 

@app.route('/', methods=['POST','GET']) 
def index(): 
    # use session["newTitle"] if it exists 
    if request.method == 'POST': 
     session["newTitle"] = request.form['title'] 
     session["newDescription "]= request.form['description'] 
    ... 

@app.route('/second_page/', methods=['POST','GET']) 
def index(): 
    # use session["newTitle"] if it exists 
    ... 
+0

ありがとうございました。私は実際にセッションの使用を知っていますが、他の方法があるかもしれません。 –

関連する問題