擅长:python、mysql、java
<p>单击<code><a href...>delete</a></code>将发出一个GET请求,而您的delete_entry方法只响应POST。</p>
<p>你需要一个。用表单提交按钮或2替换链接。让链接用JavaScript提交一个隐藏的表单。</p>
<p>以下是操作方法1:</p>
<pre><code><form action="/delete/{{ entry.id }}" method="post">
<input type="submit" value="Delete />
</form>
</code></pre>
<p>下面是使用jQuery执行2的方法:</p>
<pre><code>$(document).ready(function() {
$("a.delete").click(function() {
var form = $('<form action="/delete/' + this.dataset.id + '" method="post"></form>');
form.submit();
});
});
...
<a href="#delete" class="delete" data-id="{{ entry.id }}">Delete</a>
</code></pre>
<p>有一件事你应该<strong>而不是</strong>做,那就是让delete_entry方法响应GET。get应该是等幂的(可以安全地重复运行并且不执行破坏性操作)。<a href="https://stackoverflow.com/questions/705782/why-shouldnt-data-be-modified-on-an-http-get-request">Here's a question</a>还有更多细节。</p>