【问题标题】:Django: use clean URLs with HTTP GETDjango:使用带有 HTTP GET 的干净 URL
【发布时间】:2016-03-21 16:10:39
【问题描述】:

我在 django 中有一个表单,看起来像这样(渲染后):

<form action="/app/detail/" method="get">
  <p><label for="id_detail">Choose which items to view:</label>
  <select multiple="multiple" id="id_items" name="items">
     <option value="23">Item 23</option>
     <option value="18">Item 18</option>
     <option value="22">Item 22</option>
  </select></p>
  <input type="submit" value="View" />
</form>

相关的 url conf(在 app 中)包含此模式:

url(r'^detail/$', views.detail, name='detail')

访问详细视图的 URL 最终看起来像这样(取决于在多选框中选择了哪些选项:

http://hostname/app/detail/?items=23&items=18&items=22

views.py 中,我可以使用request.GET.getlist('items') 来获取选择的任何项目。有没有办法做到这一切,这样如果 URL 中没有?param=value&amp;,URL 就会显得更干净? Django's URL dispatcher documentation 讨论了外观简洁的 URL,但这些示例大多是具有层次结构的 URL。

【问题讨论】:

    标签: python django http-get


    【解决方案1】:

    你刚才描述的url是GET方法传递参数的方式。您当然可以使用基本 url,但将您的表单更改为使用 POST 方法。 POST 参数不是通过 url 传递的,所以它很可能是你需要的。详情看djangodocs

    【讨论】:

      猜你喜欢
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      相关资源
      最近更新 更多