Python 如何在Django模板中以特定格式显示矩阵的numpy数组?

Python 如何在Django模板中以特定格式显示矩阵的numpy数组?,python,django,numpy,django-views,django-templates,Python,Django,Numpy,Django Views,Django Templates,我想显示给定电路板中的数组元素。但我不能这么做 这是my views.py: 从django.exe导入渲染 从django.http导入HttpResponse 将numpy作为np导入 随机输入 从时间上导入睡眠 #当客户端发送请求时,家庭将接受该请求 def播放(请求): #对于请求,将创建响应 #HTTP格式(已更改) 返回呈现(请求,'play.html',{'name':'M'}) #创建一个空板 def创建板(请求): arr=np.数组([[0,0,0],[0,0,0], [0,

我想显示给定电路板中的数组元素。但我不能这么做

这是my views.py:

从django.exe导入渲染
从django.http导入HttpResponse
将numpy作为np导入
随机输入
从时间上导入睡眠
#当客户端发送请求时,家庭将接受该请求
def播放(请求):
#对于请求,将创建响应
#HTTP格式(已更改)
返回呈现(请求,'play.html',{'name':'M'})
#创建一个空板
def创建板(请求):
arr=np.数组([[0,0,0],[0,0,0],
[0, 0, 0]])
返回呈现(请求,'play.html',{'array':arr})
以下是HTML代码:


{{array}}
下面是我希望显示数组元素的网页表:

编辑1: 以下是我尝试创建表的方式:


{数组%中的行的%1}
{%if-forloop.first或forloop.parentloop.first%}
{%else%}
{%endif%}
{第%行中的列为%1}
{%if-forloop.first或forloop.parentloop.first%}
{%else%}
{%endif%}
{%endfor%}
{%endfor%}

我认为你想要的东西可以通过以下方式实现:

<table>
    <tr>
        <td>{{ array.0.0 }}</td>
        <td class="vert">{{ array.0.1 }}</td>
        <td>{{ array.0.2 }}</td>
    </tr>
    <tr>
        <td class="hori">{{ array.1.0 }}</td>
        <td class="vert hori">{{ array.1.1 }}</td>
        <td class="hori">{{ array.1.2 }}</td>
    </tr>
    <tr>
        <td>{{ array.2.0 }}</td>
        <td class="vert">{{ array.2.1 }}</td>
        <td>{{ array.2.2 }}</td>
    </tr>
</table>

{{array.0.0}
{{array.0.1}
{{array.0.2}
{{array.1.0}
{{array.1.1}
{{array.1.2}
{{array.2.0}
{{array.2.1}
{{array.2.2}
这里我们将逐一显示矩阵中的每个元素
例如:{array.0.1}}表示位置在数组第0行第1列的show元素

编辑1:如果你有很多矩阵或更大范围的矩阵,那么显然上述解决方案根本没有效率。但是,由于您的要求是将这些“vert”和“hori”css类仅用于特定的表数据单元,因此使用for循环和if条件来实现所需结果变得更加困难,如果您试图将此要求仅应用于一个3x3矩阵,则实现几个for循环和几十个if条件是不明智的

如果您同意将“vert”和“hori”css类应用于所有表格数据单元格,那么更优雅的解决方案是:

<table>
    {% for row in array %}
    <tr>
        {% for cell in row %}
        <td class="vert hori">{{ cell }}</td>
        {% endfor %}
    </tr>
    {% endfor %}
</table>

{数组%中的行的%1}
{第%行中的单元格为%1}
{{cell}}
{%endfor%}
{%endfor%}

这些回答了您的问题吗?还要注意,在Jinja中,变量名前后需要一个空格。所以它应该是{{array}}而不是{{array}}不,他们没有解决这个问题。你试过用两个循环来解决它吗?在这两个for循环中,您还应该添加行,因为它给出了以下错误:TemplateSyntaxError位于/无法解析余数:“[0][0]”来自“array[0][0]”,如果我应用了edit 1代码,则不会生成任何输出produced@Maansi我忘了在django模板中,假定使用点运算符而不是通常的类似python的语法来访问特定的数组元素。因此,我相应地更新了我的答案,而不是数组[0][0]put array.0.0。现在应该可以了。