假設你有多個提交一個表單:檢查其「提交」 POST按鈕按下Python的瓶
<form method="POST" action="/etc">
<input name="foo" type="submit" value="Foo!">
<input name="bar" type="submit" value="Bar!">
</form>
在PHP按下檢查其提交按鈕很簡單,只要:
if (isset($_POST['foo'])) { return 'foo' }
if (isset($_POST['bar'])) { return 'bar' }
什麼是Python.Bottle等價物?
我已經試過:
if (request.POST.get('foo')):
return 'foo'
if (request.POST.get('bar')):
return 'bar'
但是,它返回一個KeyError異常,這意味着「富」和「酒吧」不在POST字典。
我也試過在表單中添加一個測試字段,並在表單提交時返回該字段中的值,並且完美地工作,因此表單正在發佈。
有一點可能很重要:表單中的提交按鈕是動態生成的。
編輯:發現一個可能的問題。我使用jQuery發佈和序列化表單數據,但顯然jQuery的序列化忽略了從輸出提交按鈕,這肯定會導致我所看到的。目前正在研究一種解決方法,但仍有任何幫助。
確保瀏覽器在POST請求中包含提交按鈕名稱;使用瀏覽器中包含的開發人員工具。沒有任何關於提交按鈕,使得它非常特殊,服務器端可以檢測到它是一個提交按鈕,並且神奇地省略它,而不是「瓶子」或任何其他框架。這是*不是'瓶'特定的問題。 –
任何提示/鏈接,告訴我如何做到這一點?如果可能的話使用Chrome。 – Djentleman
'View'>'Developer'>'Developer Tools',選擇'Network'選項卡,過濾'Documents'(窗口底部),提交表單,選擇所做的請求('Method'列將顯示它是一個'POST')並檢查顯示的各個標籤。 –