Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模板:将编号的img加载到html_Python_Html_Django Templates - Fatal编程技术网

Python Django模板:将编号的img加载到html

Python Django模板:将编号的img加载到html,python,html,django-templates,Python,Html,Django Templates,我试图循环数据库计数以在html中插入img,但无法使{static}命令正常工作。具体而言: 从views.py导入列表: queryset = db_imNewChk.objects.exclude(N_tag=u'').order_by("d_Rank") for p in queryset: if (p.gp_Email): if (c_email): if not("<

我试图循环数据库计数以在html中插入img,但无法使{static}命令正常工作。具体而言:

从views.py导入列表:

queryset = db_imNewChk.objects.exclude(N_tag=u'').order_by("d_Rank")
        for p in queryset:
            if (p.gp_Email):
                if (c_email):
                    if not("<li><a href=\"#\"><img src=\"{% static '/img/email_icon"+p.gp_Email+".png' %}\"  width=\"20%\" style=\"padding: 3px\"></a></li>" in c_email):
                        c_email.append("<li><a href=\"#\"><img src=\"{% static '/img/email_icon"+p.gp_Email+".png' %}\"  width=\"20%\" style=\"padding: 3px\"></a></li>")
                else:
                    c_email.append("<li><a href=\"#\"><img src=\"{% static '/img/email_icon"+p.gp_Email+".png' %}\"  width=\"20%\" style=\"padding: 3px\"></a></li>")
...
return render(request, 'exportnews.html', {'table': listExport, 'table2': listExport1, 'table_count': q_size, 'count_email' : sorted(c_email)})
queryset=db\u imNewChk.objects.exclude(N\u tag=u'').order\u by(“d\u Rank”)
对于queryset中的p:
如果(p.gp\U电子邮件):
如果(c_电子邮件):
如果没有(c_电子邮件中的“
  • ”): c_email.append(“
  • ”) 其他: c_email.append(“
  • ”) ... 返回呈现(请求,'exportnews.html',{'table':listExport,'table2':listExport1,'table_count':q_size,'count_email':排序(c_email)})
    然后在django模板exportnews.html中:

    {% load static %}
            <td style="width:350px;height:80px;" rowspan="3" colspan="2">
                <ul class="images">
                    {% for field in count_email %}
                        {{field|safe}}
    
                    {% endfor %}
                </ul></td>
    
    {%load static%}
    
      {count_email%}中的字段为% {{field | safe}} {%endfor%}
    我想要达到的目标是:

    <li><a href="#"><img src="http://127.0.0.1:8000/static/img/email_icon1.png' %}" width="20%" style="padding: 3px"></a></li>
    <li><a href="#"><img src="http://127.0.0.1:8000/static/img/email_icon2.png' %}" width="20%" style="padding: 3px"></a></li>
    <li><a href="#"><img src="http://127.0.0.1:8000/static/img/email_icon3.png' %}" width="20%" style="padding: 3px"></a></li>
    
  • 但是,呈现的html代码如下所示:

    <li><a href="#"><img src="{% static '/img/email_icon1.png' %}" width="20%" style="padding: 3px"></a></li>
    <li><a href="#"><img src="{% static '/img/email_icon2.png' %}" width="20%" style="padding: 3px"></a></li>
    <li><a href="#"><img src="{% static '/img/email_icon3.png' %}" width="20%" style="padding: 3px"></a></li>
    

  • 因此,{%static%}似乎不起作用。有人能就解决这个问题提出建议吗?非常感谢

    这就是
    safe
    过滤器的作用,它可以一字不差地呈现内容。您应该在模板中保留html呈现。简化您的视图:

    # views.py
    ...
    c_email = set()  # easier than list
    queryset = db_imNewChk.objects.exclude(N_tag=u'').order_by("d_Rank")
    for p in queryset:
        if p.gp_Email:
            c_email.add(p.gp_Email)
    ...
    return render(request, 'exportnews.html', {..., 'count_email': sorted(c_email)})
    
    然后,在模板中渲染内容,例如使用过滤器。您必须将
    构造一起使用,因为:

    {count\u email%中foo的百分比]
    {%带有“/img/email_icon”| add:foo | add:“.png”作为static_bar%}
    
  • {%endwith%} {%endfor%}
    哇,非常感谢!它起作用了。以前还没有学习过Python中的set,这些新用法给我们上了很好的一课!
    {% for foo in count_email %}
      {% with '/img/email_icon'|add:foo|add:'.png' as static_bar %}
        <li><a href="#"><img src="{% static static_bar %}"  width="20%" style="padding: 3px"></a></li>
      {% endwith %}
    {% endfor %}