2017-12-04 13 views
0

私はPythonとFlaskが初めてです。私は現在、異なるアクションのために異なるページをレンダリングする必要があるプロジェクトに取り組んでいますが、どちらも同じオブジェクトにアクセスする必要があります。例えばオブジェクトをフラスコ内のURL変数として渡すにはどうすればよいですか?

@app.route("/", methods =['GET','POST']) 
def funtionA() 
    objs = somefunction() // returns an object list 
    render_template("/results/'+objs+'") 

@app.route("/results/<objs>", methods =['GET','POST']) 
def functionB(objs) 
    for obj in objs 
     print(objs[i].attr) 

私は、文字列、パラメータとしての整数であっても、パスを渡すことができています。オブジェクトを渡すことが可能かどうかを調べるための参照が見つかりませんでした。あなたの応答を感謝しなさい!

おかげで、 ディーパック

+0

1つのビューから別のビューに渡す必要があるデータをもう少し詳しく説明できますか?データはDBから出ていますか? – Adam

答えて

0

それはあなたが必要なもののようにflask url_for

@app.route("/", methods =['GET','POST']) 
def funtionA() 
    objs = somefunction() // returns an object list 
    return redirect(url_for('app.functionB', objs=objs)) 

@app.route("/results/<objs>", methods =['GET','POST']) 
def functionB(objs) 
    for obj in objs 
     print(objs[i].attr) 
    return "something {}".format(objs) 

ないを使用することで見えますまた、あなたのビュー関数は常に応答

を返す必要があること、それは解決策の一つですあなたの問題は、それが助けてくれることを願って

1

あなたはグローバルアプリケーションを使うことができます。これはflask.g

http://flask.pocoo.org/docs/0.12/api/#application-globals

フラスコはそれがアクティブな要求に対してのみ有効であり、それは要求ごとに異なる値を返すことが保証されます特別なオブジェクトを提供します経由でアクセス可能です。

関連する問題