Python Django显示来自GET请求的数据
假设我有一个Python Django显示来自GET请求的数据,python,django,response,jinja2,Python,Django,Response,Jinja2,假设我有一个GET请求,下面的代码显示了请求的格式 例如: /?title1=xxx&message1=xxx&file1=xxx&...&titleN=xxx&messageN=xxx&fileN=xxx 上面的示例显示来自GET请求的数据 我如何遍历GETrequest的列表,并在它自己的div上显示每个'requestN' 当然,这需要使用jinja模板和django 我实际上找到了只显示两个参数的解决方案 {% for key, val
GET
请求,下面的代码显示了请求的格式
例如:
/?title1=xxx&message1=xxx&file1=xxx&...&titleN=xxx&messageN=xxx&fileN=xxx
上面的示例显示来自GET
请求的数据
我如何遍历GET
request的列表,并在它自己的div上显示每个'requestN'
当然,这需要使用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 %}
{%for value in all_values%}
{%include“title_snippet.html”,title=value.title%}
{%include“message_snippet.html”,message=value.message%}
{%endfor%}
我看不到在模板方面可以轻松解决这个问题。在呈现模板时,需要添加一些逻辑
在控制器端
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 %}
{%for value in all_values%}
{%include“title_snippet.html”,title=value.title%}
{%include“message_snippet.html”,message=value.message%}
{%endfor%}
解决此问题的一种方法是使用正则表达式在views.py中的iterable dict中对请求参数进行排序,并在模板端进行排序
{% for i in all_values %}
<p>
{% if 'title' in i.keys.0 %}
{{ i.values.0 }}
{% endif %}
</p>
{% endfor%}
{i在所有_值中的百分比%}
{%i.keys.0%}
{{i.values.0}
{%endif%}
{%endfor%}
解决此问题的一种方法是使用正则表达式在views.py中的iterable dict中对请求参数进行排序,并在模板端进行排序
{% for i in all_values %}
<p>
{% if 'title' in i.keys.0 %}
{{ i.values.0 }}
{% endif %}
</p>
{% endfor%}
{i在所有_值中的百分比%}
{%i.keys.0%}
{{i.values.0}
{%endif%}
{%endfor%}
您可能希望将GET请求中的数据规范化为元组列表,如[(title1,message1),(title2,message2),(title3,message3),…]
并将其传递给要呈现的模板。您可能希望将GET请求中的数据规范化为元组列表,如[(title1,message1),(title2,message2),(title3,message3),…]
并将其传递给要呈现的模板。代码中存在一些问题。首先,forloop值和value={}之间存在冲突。此外,在模板中,所有_值而不是my_值都无法获取第一部分。为第二部分更新。for键,请求中的值。get.items():您在第3行中使用了value变量。在第4行中,您创建了一个名为value={}的字典。您的代码中存在一些问题。首先,forloop值和value={}之间存在冲突此外,在模板中,所有的_值而不是我的_值都无法获取第一部分。第二部分已更新。for键,request.get.items()中的值:您在第3行中使用了value变量。在第4行中,您创建了一个名为value={}的字典