This question started as the question at this link코드는 HTML 템플릿을 통해 불어 직접
나는 문제가 템플릿 unexpected.html
(더 아래)에 생각 파이썬로 돌아갑니다. 파이썬 코드는 잘 작동하지만 사용자가 number
을 제공하고 제출 버튼을 클릭하면 파이썬 코드가 값을 받아들이므로 if
절의 분기가 수행 되더라도 브라우저의 결과는 이고은 unexpected.html
입니다. 그리고 파이썬 코드의 하단에 삽입 된 HTML.
unexpected.html
템플릿으로 브라우저가 멈추지 않는 이유는 무엇입니까?
먼저 파이썬 코드입니다.
class MainPage(BaseHandler):
def get(self):
self.render_template('index.html', { })
def post(self):
number = self.request.get('number')
hiddennumber = self.request.get('hiddennumber')
for i in ["a"]:
if int(number) < int(hiddennumber):
reason='< was in that time slot already: '
trans = Trans(key_name='reason')
trans.reason=reason
trans.name=number
trans.put()
template_values = {'trans':trans}
path = os.path.join(TEMPLATE_DIR, 'unexpected.html')
self.response.out.write(template.render(path, template_values))
elif int(number) > int(hiddennumber):
reason='> was in that time slot already: '
trans = Trans(key_name='reason')
trans.reason=reason
trans.name=number
trans.put()
template_values = {'trans':trans}
path = os.path.join(TEMPLATE_DIR, 'unexpected.html')
self.response.out.write(template.render(path, template_values))
else:
pass
self.response.out.write('''
<html>
<body>
<form method="post">
<p>Name: <input type="text" name="name" /></p>
<p>Favorite foods:</p>
<select name="favorite_foods" multiple size="4">
<option value="apples">Apples</option>
<option value="bananas">Bananas</option>
<option value="carrots">Carrots</option>
<option value="durians">Durians</option>
</select>
<p>Birth year: <input type="text" name="birth_year" /></p>
<p><input type="submit" /></p>
</form>
</body>
</html>
''')
class Unexpected(BaseHandler):
def get(self):
trans=Trans.get_by_key_name('reason')
template_values = {'trans':trans}
path = os.path.join(TEMPLATE_DIR, 'unexpected.html')
self.response.out.write(template.render(path, template_values))
def post(self):
day=self.request.get('day')
return webapp2.redirect("/")
app = webapp2.WSGIApplication([
('/', MainPage),
('/unexpected', Unexpected)
],
debug=True)
템플릿 unexpected.html
다음입니다.
{% extends "base.html" %}
{% block content %}
<form action="" method="post" >
<input type="hidden" name="day" value="{{ day }}"/>
This unexpected result occurred: <emph style="font-weight: bold">{{ trans.reason }}</emph>
<br /><br />
<div id="inputdata">
<label>Click the "Ok" button to go back to the previous page so you can edit your entry.
</label>
<input type="submit" value="submit" />
</div>
</form>
<button onclick="window.history.back()">Ok</button>
{% endblock content %}
마지막으로, 나는 더 완성도 index.html
을 포함하고있다.
{% extends "base.html" %}
{% block content %}
<center>
</h1>
</center>
<form action="" method="post">
<input type="hidden" name="hiddennumber" value="10">
<label>Location/Venue name (no spaces and case counts)</label>
<input type="textbox" name="number" size="30" value=""></input><br/>
<input type="submit" value=submit />
</form>
{% endblock content %}