更新0: 有一個微妙的,但嚴重,在我的代碼,並在下面,因爲我不僅可以在模板上與hiddenname
比較name
我的解釋錯誤(這只是告訴我,用戶已經做了一個像複選框更改會告訴我的變化,但故意沒有複選框),我還需要比較name
到name
的狀態在保留的數據存儲區中以查看如果其他人已經預留了時間段。所以我不能使用JavaScript,我必須重寫下面的一些代碼才能做出正確的比較。這個問題的標題可能會保留原始問題。 (在我錯誤地說了JavaScript會工作的意見之一。) 更新0:一個Python編碼的「警報」般的對話框或模板
我想這個代碼提示,我用Trans
模型寫一個排序的方式「警告」和gae數據存儲(在下面)在我的主應用程序和「警報模板」之間進行通信。我有幾個問題。
最初,我需要在else:
子句的另一部分代碼中使用此警報,而不是在elif:
子句中。當我嘗試在elif
代碼中使用更簡單的警報版本時,python似乎忽略了self.response.out.write(template.render(path, template_values))
,然後繼續執行代碼,結束了我的條件:return webapp2.redirect("/read/%s" % location_id)
。所以,正如你在我的代碼中看到的,我已經註釋掉了被忽略的前代碼行,並試圖用更接近後者的代碼行來代替它,但後一行指向unexpected
而不是read
。你可以從我的代碼中看到它仍然是兩種方法的混合,我可以使用幫助對它們進行排序。 else:
和elif:
對此有什麼不同嗎?
本來我並沒有預料到我希望從我的代碼中的很多地方調用相同的html模板和Trans模型,所以我沒有在使用Trans
的設計中設計密鑰或ID或key_name。而現在我無法實現具有這種細節的版本。
我一直在尋找一個如何在Python中創建這種「警報模板」的例子。他們在javascript中非常容易,但我正在嘗試在我的python代碼中進行用戶輸入驗證。任何指向示例或文檔的指針將不勝感激。
weekday_key = db.Key.from_path('Locations',location_id,'Courts', court_id,'Days',weekday)
if name == hiddenname:
pass
elif name != hiddenname and hiddenname == "":
reservation = Reservations.get_or_insert(time[2],parent=weekday_key)
reservation.hour = time[0]
reservation.minute = time[1]
reservation.year = int(year)
reservation.nowmonth = int(nowmonth)
reservation.day = int(day)
reservation.nowweekday = int(nowweekday)
reservation.name = name
reservation.put()
elif name != hiddenname and name!="":
reservation = Reservations.get_by_key_name(time[2],parent=weekday_key)
reservation.hour = time[0]
reservation.minute = time[1]
reservation.year = int(year)
reservation.nowmonth = int(nowmonth)
reservation.day = int(day)
reservation.nowweekday = int(nowweekday)
reservation.name = name
reservation.put()
reason='This was in that time slot already: '
trans = Trans(parent=reservation.key().name()) #this line is iffy
trans.reason=reason
trans.name=hiddenname
trans.put()
iden = trans.key().id() # this is part of the iffy just above
template_values = {'trans':trans}
path = os.path.join(TEMPLATE_DIR, 'unexpected.html')
#self.response.out.write(template.render(path, template_values))
return webapp2.redirect("/unexpected/%s/%d" % (time[2],iden) #more iffy
else:
pass
我對跨中下一個模型。
class Trans(db.Model):
reason = db.StringProperty()
name = db.StringProperty()
我的Jinja2配備unexpected.html
模板如下。
{% extends "base.html" %}
{% block content %}
This unexpected result occurred. {{ trans.reason }}:<emph style="font-weight: bold">{{ trans.name }}</emph>
<br /><br />
<div id="inputdata">
<label>Click the "Ok" button to go back to the previous page so you can elect to edit your entry, or not.
</label>
<button onclick="window.history.back()">Ok</button>
</div>
{% endblock content %}
請不要使用'''',而是使用'!='來代替[文檔](http://docs.python.org/reference/expressions.html#not-in):*「The < >拼寫被認爲是過時的。「* <>'運算符已從Python 3中完全刪除。 –
爲什麼不使用正常的javascript警報? –
正如我在問題中所說的,「我試圖在我的python代碼中進行用戶輸入驗證。」與使用JavaScript警報不一致嗎? – zerowords