Die folgenden 2 js-Funktionen können eine Schaltfläche zu und von der deaktivierten Klasse umschalten. Ich möchte, dass der deaktivierte Zustand von der globalen Variable filelength
im Python-Code abhängt, aber ich kann mir keinen einfachen Weg dazu vorstellen. Die einzige Möglichkeit, die mir einfällt, ist, zwei identische, aber separate Vorlagen zu haben, eine mit deaktivierter Schaltfläche und eine mit dieser Option.JavaScript-Funktion auslösen basierend auf Python-Variablenwert
<script type="text/javascript" language="JavaScript">
function enableButton(button){
document.getElementById(button).removeAttribute('class');
document.getElementById(button).setAttribute("class", "button");
}
function disableButton(button){
document.getElementById(button).setAttribute("class", "disabled");
}
</script>
ich soll die Funktionen für das folgende index.html
Schablonenelement verwenden.
<button id="Test" class="button disabled" >
Test
</button>
Die beabsichtigte Hin- und Herschalten würde folgende alt.html
Schablonenelement erzeugen, welche die „disabled“ elides.
<button id="Test" class="button" >
Test
</button>
Es scheint dumm 2 separate Vorlagen zu erfordern (index.html und alt.html) umschalten zu erreichen, aber ich kann eine Alternative, die nicht denkt, dass ich nur erlaubt, index.html
zu verändern. Anfangs dachte ich, dass jinja2 die benötigte Funktionalität bereitstellen würde, aber das scheint nicht korrekt zu sein.
Wie kann ich dies ohne eine zweite Vorlage mit Python und GAE erreichen?
Für weitere Vollständigkeit, unten zeige ich den relevanten Status meiner Python-Anwendung als nächstes.
import os
import jinja2
import webapp2
import urllib
filelength = 0
class MainPage(BaseHandler):
def get(self):
global filelength
logging.info("text length in Main get: %s " % filelength)
template_values = {'filelength':filelength}
template = JINJA_ENVIRONMENT.get_template('index.html')
self.response.out.write(template.render(template_values))
def post(self):
global filelength
url = self.request.get('URL', None)
text = urllib.urlopen(url).read()
logging.info("text length in Main post: %s " % len(text))
filelength = len(text)
if filelength > 0:
return webapp2.redirect('/alt')
else:
return webapp2.redirect('/')
class AltMainPage(BaseHandler):
def get(self):
global filelength
logging.info("text length in Alt get: %s " % filelength)
template_values = {'filelength':filelength}
template = JINJA_ENVIRONMENT.get_template('alt.html')
self.response.out.write(template.render(template_values))
def post(self):
global filelength
url = self.request.get('URL', None)
text = urllib.urlopen(url).read()
logging.info("text length in Alt post: %s " % len(text))
if filelength > 0:
return webapp2.redirect('/alt')
else:
return webapp2.redirect('/')
return webapp2.redirect('/')
app = webapp2.WSGIApplication([
('/', MainPage),
('/alt', AltMainPage),
],
debug=True)