python - Django 和查询字符串参数

标签 python django

假设我有一个“get_item” View ,我该如何为以下 php 样式的 URL 编写 URL 模式?

http://example.com/get_item/?id=2&type=foo&color=bar

(我没有使用标准的“漂亮”类型的 URL,即:http://example.com/get_item/2/foo/bar,因为它不实用)

具体来说,当用户在浏览器中键入以上内容时,如何让 View 响应,如何收集参数并在 View 中使用?

我试图至少让 id 部分正确但无济于事。当我在浏览器 http://example.com/get_item?id=2

中键入此内容时, View 不会运行

我的网址格式:

(r'^get_item/id(?P<id>\d+)$', get_item)

我的看法:

def get_item(request):
    id = request.GET.get('id', None)
    xxxxxx

简而言之,如何在django中实现带有查询字符串参数的php风格的url模式?

最佳答案

让你的图案像这样:

(r'^get_item/$', get_item)

在你看来:

def get_item(request):
    id = int(request.GET.get('id'))
    type = request.GET.get('type', 'default')

Django 自动处理查询字符串并使其参数/值对可用于 View 。无需配置。 URL 模式仅引用基本 URL,查询字符串是隐式的。

但是,对于普通的 Django 样式,您应该将 id/slug 放在基本 URL 中,而不是放在查询字符串中!使用查询参数,例如。用于过滤 ListView 、确定当前页面等...

关于python - Django 和查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711349/

相关文章:

python - 向大型 python 项目添加单元测试

python - 尝试读取 docx 文件时出现 UnicodeDecodeError

python - 您将如何为这种数据库关系建模?

python - 将日期时间从 Objective C 传递到 Django

python - django admin中的嵌套显示(多外键)

django - 如何将 RESTful 服务与 Django + Mongoengine 结合使用?

python - 将另一个函数作为可选参数调用是否可以/pythonic?

python - flask 形式 : how can I use multiple forms to add Parent and Child entities to DB in one commit?

python - 如何序列化请求Response对象为HAR

python - 如何使用 python-social-auth 在代码中通过访问 token 进行身份验证