2011-01-10 11 views
0

Ich habe versucht, eine globale Variable namens temp in web2py zu erstellen, aber anscheinend ändert sich der Wert der Variablen nicht, auch wenn ich versuche, die Benutzereingabe in temp zu speichern. Es bleibt nur gleich (Temp = 0.0). Was ist los mit dir? HierWie benutzt man globale Variable in web2py?

ist die default.py: http://pastebin.com/dafZZjJx
Hier ist die index.html: pastebin.com/Lw21Gg15

Gibt es eine andere Art und Weise Benutzereingaben Funktionen zu senden, wenn Bilder in HTML-Seite zu erstellen? Ich habe die folgende Zeile verwendet
image = URL (r = Anfrage, f = 'nonhomog_plot')
um das Bild zu machen, aber was ist die korrekte Syntax, wenn ich die Benutzereingabe an nonhomog_plot senden möchte, ohne eine globale Variable zu verwenden ?

Antwort

2

Sie können Globals in Web2py verwenden, aber sie sind nicht persistent. Sie können Temp in Sitzung speichern, wenn Sie möchten. (BTW, gibt es keine Notwendigkeit, einen globalen in einem Kontext zu erklären, wo man es nur gerade lesen.)

Alternativ übergeben Sie in Abfrage-String Ihrer URL:

image = URL('nonhomog_plot', vars=dict(nu=str(value)))

oder in Ihrem Fall, da du nu in vars bereits sind Empfang:

image = URL('nonhomog_plot', vars=request.vars)

oder um nur nu:

image = URL('nonhomog_plot', vars=dict(nu=request.vars.nu))

+0

Danke! Folgendes habe ich geändert. (I entfernt die temporäre Variable aus dem Anfang des Programms.) def index(): form = ... image = Kein image2 = Keine wenn form.accepts (request.vars, Sitzung): Sitzung. Flash-= ... = session.temp Schwimmers (request.vars.nu) response.flash = session.temp image = URL (r = Anforderung, f = 'nonhomog_plot') image2 = ... elif Form .errors: response.flash = ... anderes: response.flash = ... return dict (form = Form, image = Bild, image2 = image2) def nonhomog_plot(): Rückgabe nonhomog (Sitzung.temp) – user569474

0

In web2py gibt es keine globalen Variablen. Sie können cache.ram verwenden

+0

Danke! Wahrscheinlich funktioniert das auch. – user569474