次の2つのjs関数は、無効なクラスとの間でボタンを切り替えることができます。私は無効状態をグローバル変数filelength
のPythonコードに依存させたいが、そうする簡単な方法は考えられない。私が考えることができる唯一の方法は、2つの同一であるが別々のテンプレートを用意することであり、1つはボタンを無効にし、もう1つは有効にする。pythonの変数値に基づいてjavascript関数をトリガー
<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>
次のindex.html
テンプレート要素の機能を使用することを意図していました。
<button id="Test" class="button disabled" >
Test
</button>
意図したトグリングは、「無効」を無効にする次のalt.html
テンプレート要素を生成します。
<button id="Test" class="button" >
Test
</button>
このトグルを達成するために2つの別々のテンプレート(index.htmlをとalt.html)を必要とする愚かなようだが、私は私がちょうどindex.html
を変更することができる代替を考えることはできません。最初は、jinja2が必要な機能を提供すると思っていましたが、それは正しいとは思われません。
PythonとGAEを使用して2番目のテンプレートを使用せずにこれを行うにはどうすればよいですか?
次に、私は私のpythonアプリケーションの関連する状態を次に示します。テンプレートindex.html
で
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)