【问题标题】:Django : array within a query string as foo[]=bar1&foo[]=bar2Django:查询字符串中的数组 foo[]=bar1&foo[]=bar2
【发布时间】:2019-05-15 17:16:07
【问题描述】:

我需要准备一个提供以下 url 模式的 Django 微服务:

http://<myserver>/getinfo/?foo[]=bar1&foo[]=bar2

这似乎是一种非常 PHP 的做法,但我必须在 django 中模仿它...

在 Django 中是否有一种标准方法来设计 URL 和检索查询字符串参数作为视图中的列表?

【问题讨论】:

    标签: arrays django querystringparameter


    【解决方案1】:

    wrt/ "designing the url", Django 的 urlpatterns 忽略查询字符串(它们只匹配路径),所以你在这里没有什么可做的。

    wrt/ 将查询字符串参数作为列表检索,这已由Django's QueryDict 处理:

    QueryDict.getlist(key, default=None)

    返回带有请求键的数据列表。如果键不存在且未提供默认值,则返回一个空列表。除非提供的默认值不是列表,否则保证返回列表。

    注意:忘记添加 Django 不会自动从密钥中删除括号,因此您需要 foos = request.GET.getlist("foo[]")(感谢 Daniel Roseman)

    【讨论】:

    • 还值得注意的是,Django 只会将 [] 视为密钥的一部分,因此您需要执行 request.GET.getlist('foo[]')
    • @DanielRoseman 感谢您的精确,我确实忘了提这个......
    • @brunodesthuilliers 您如何配置urls.py 以接受网址中的[]
    • 假设我有getinfo/?foo[]=bar1&amp;foo[]=bar2&amp;poo[]=pie1&amp;poo[]=pie2
    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多