2014-12-22 33 views
8

Farz edin ki aşağıdaki durumu;Flask sayfaları arasında bir değişken nasıl iletilir?

@app.route('/a', methods=['GET']) 
def a(): 
    a = numpy.ones([10,10]) 
    ... 
    return render_template(...) # this rendered page has a link to /b 

@app.route('/b', methods=['GET']) 
def b(): 
    print a 
    .... 

Rederededilmiş sayfada, sayfa/a/b'ye yönlendiren bir bağlantı var. Yeniden kullanmak için a değişkenini sayfa/b'ye aktarmaya çalışıyorum. Bu Flask uygulamasını nasıl yapmalıyım? Seans kullanmam gerekiyor mu yoksa başka bir çözüm var mı?

+1

Vermek istediğiniz bilgilerin niteliği nedir? Bağlantıya "b" sayfasından GET parametresi ekleyebilir veya müşteri tarafında oturumda oluşumu saklayabilir veya sunucu tarafında durum olarak saklayabilirsiniz. Hangi wy'nin doğru olduğuna karar vermek için, neyi başarmaya çalıştığınız hakkında daha fazla bilgiye ihtiyacımız var. –

+0

get parametresini nasıl ekleyebilirim? Sanırım bu en iyi çözümdür – erogol

cevap

25

kullanıcı bakın veya elinde tutma ihtiyacı olmadığını bazı piton değeri etrafında geçmek istiyorsanız, oturumu kullanabilirsiniz: Bir değer geçmek istiyorsanız

@app.route('/a') 
def a(): 
    session['my_var'] = 'my_value' 
    return redirect(url_for('b')) 

@app.route('/b') 
def b(): 
    my_var = session.get('my_var', None) 
    return my_var 

/b?my_var=my_value 
: url üretecek

<a href="{{ url_for('b', my_var='my_value') }}">Send my_value</a> 

: bir url bir şablondan, bir sorgu parametresini kullanabilirsiniz

b okunabilirliklerini:

@app.route('/b') 
def b(): 
    my_var = request.args.get('my_var', None) 
+0

oturumun numpy dizilerini – erogol

+0

@ Erogol No olarak tuttuğunu düşünüyorsanız, varsayılan tanımlama bilgisi tabanlı oturum, karmaşık nesneleri veya büyük veri kümelerini serileştirmenin iyi bir yolu değildir. Yollar arasındaki uyuşmuş dizileri geçmek, bir web uygulamasında yapılacak normal bir şey gibi görünmüyor, aslında ne yapmaya çalışıyorsunuz? – davidism

1

/a için şablonda rota /b link size /b için rotada okuyabilir kendisine eklenen sorgu parametreleri, olabilir. Alternatif olarak, görünümler arasında erişmek için bir oturum değişkeninde a değerini saklayabilirsiniz.

İlgili konular