Django 显示来自 GET 请求的数据
Django Displaying data from GET request
假设我有一个 GET
请求,下面的代码显示了请求的格式
示例:
/?title1=xxx&message1=xxx&file1=xxx&...&titleN=xxx&messageN=xxx&fileN=xxx
以上示例显示来自 GET
请求的数据。
我如何遍历 GET
请求列表并单独显示每个 'requestN' div。
当然这使用 jinja 模板和 django。
我实际上找到了一个只显示两个参数的解决方案。
{% for key, value in GET.items %}
{% if forloop.counter0|divisibleby:2 %}
{% include "title_snippet.html" with title=value %}
{% else %}
{% include "message_snippet.html" with message=value %}
{% endif %}
{% endfor %}
此解决方案仅显示两个参数的数据。但我希望它适用于 N 个参数。
?titre1=titre1&?message1=message1&?titre2=titre2&?message2=message2
我认为在模板端无法轻松解决此问题。您需要在呈现模板时添加一些逻辑。
在你的控制器端。
def myview(request):
values = []
for key, value in request.GET.items():
if key.startswith("title"):
product = {}
index_value = key.replace("title","")
product["title"] = key
if request.GET.get("message"+index_value):
product["message"] = request.GET["message"+index_value]
values.append(product)
return render_to_response("template.html", {"all_values":values})
在你的模板端,类似
{% for value in all_values %}
<div >
{% include "title_snippet.html" with title=value.title %}
{% include "message_snippet.html" with message=value.message %}
</div>
{% endfor %}
解决这个问题的一种方法是在 views.py 中使用正则表达式对可迭代字典中的请求参数进行排序,在模板端你可以
{% for i in all_values %}
<p>
{% if 'title' in i.keys.0 %}
{{ i.values.0 }}
{% endif %}
</p>
{% endfor%}
假设我有一个 GET
请求,下面的代码显示了请求的格式
示例:
/?title1=xxx&message1=xxx&file1=xxx&...&titleN=xxx&messageN=xxx&fileN=xxx
以上示例显示来自 GET
请求的数据。
我如何遍历 GET
请求列表并单独显示每个 'requestN' div。
当然这使用 jinja 模板和 django。
我实际上找到了一个只显示两个参数的解决方案。
{% for key, value in GET.items %}
{% if forloop.counter0|divisibleby:2 %}
{% include "title_snippet.html" with title=value %}
{% else %}
{% include "message_snippet.html" with message=value %}
{% endif %}
{% endfor %}
此解决方案仅显示两个参数的数据。但我希望它适用于 N 个参数。
?titre1=titre1&?message1=message1&?titre2=titre2&?message2=message2
我认为在模板端无法轻松解决此问题。您需要在呈现模板时添加一些逻辑。
在你的控制器端。
def myview(request):
values = []
for key, value in request.GET.items():
if key.startswith("title"):
product = {}
index_value = key.replace("title","")
product["title"] = key
if request.GET.get("message"+index_value):
product["message"] = request.GET["message"+index_value]
values.append(product)
return render_to_response("template.html", {"all_values":values})
在你的模板端,类似
{% for value in all_values %}
<div >
{% include "title_snippet.html" with title=value.title %}
{% include "message_snippet.html" with message=value.message %}
</div>
{% endfor %}
解决这个问题的一种方法是在 views.py 中使用正则表达式对可迭代字典中的请求参数进行排序,在模板端你可以
{% for i in all_values %}
<p>
{% if 'title' in i.keys.0 %}
{{ i.values.0 }}
{% endif %}
</p>
{% endfor%}