请问一下我这个django向前端传值是不是格式错了还是模板语句的语法错了

从视图函数像前端传值,msc是个数组,可以在前端的表格中显示,listwww是个列表,是显示表格的表头信息,无法正常显示
视图函数

def mmsc(request):
    ii = list(request.session["info"].values())[0]
    name = []
    name.append('msc' + str(ii))
    file_object = request.FILES.get("file")
    if file_object:
        data = xlrd.open_workbook(filename=None, file_contents=file_object.read())
        sheet = data.sheet_by_index(0) #获取第一个工作表
        nrows = sheet.nrows  #获取工作表中行数
        lista = []
        for i in range(1, nrows):
            lista.append(np.array(sheet.row_values(i)))
        arr = np.array(lista) #此时得到二维数组进行预处理
        ###
        listqqq = []
        lll = LL()
        listwww = lll.lb(listqqq)
        print(type(listwww))
        p = pre()
        msc = p.msc(arr)
        msc = np.round(msc, 6) #数据处理完成
        #写入excel
        path1 = 'D:\\PycharmProjects\\pythonProject3\\bphweb\\app01\\static\\'
        path2 = name[0] + '.xlsx'
        path3 = os.path.join(path1, path2)
        workbook = xlsxwriter.Workbook(path3)  # 新建excel表
        worksheet = workbook.add_worksheet('sheet1')
        for i, item in enumerate(msc):   # enumerate 遍历出来的数据可以包含索引 #i 有几行 # j 有几列
            for j, val in enumerate(item):
                worksheet.write(i, j, val)
        workbook.close()
        return render(request, 'msc2.html', {'msc':msc,'listwww':listwww})
    return render(request,'msc.html')

前端页面

<div style="margin-top:10px;margin-left:10px;">多元散射校正处理结果:<a href="{% url 'downloadm' %}" rel="external nofollow" >点我下载</a></div>
<div style="color:red;margin-left:10px;">**默认仅显示前二十行数据,完整结果请点击上方下载</div>
<div class="container-fluid" style="margin-top:5px;">
    <div style="margin-top:10px;overflow-x: scroll;">
        <table class="table table-bordered">
            <thead>
            <tr>
                {% for i in listwww %}
                <th>i</th>
                {% endfor %}
            </tr>
            </thead>
            <tbody>
            {% for item in msc|slice:":20" %}
                <tr>
                    {% for i in item %}
                    <td>{{ i }}</td>
                    {% endfor %}
                </tr>
            {% endfor %}
            </tbody>
        </table>
    </div>
</div>

目前效果如下

img


                {% for i in listwww %}
                <th>i</th>
                {% endfor %}

你看标签中的i是不是没加{}?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    看起来代码逻辑没有问题。您可能需要检查以下几个方面:

    1. your_template.html中的 <table> 标签是否正确结束。
    2. 是否有其它CSS样式文件已经影响了表格的显示效果。
    3. 在前端页面中显示的数组 msc 是否为空,如果为空则不会有任何显示。

    如果您已经排除了以上可能性,您可以进一步检查以下方面:

    1. Django版本是否正确,使用的语言是否为Python3。
    2. 您是否在添加视图函数后重新启动了Django服务。

    最后,如果您还无法确定问题所在,您可以尝试在视图函数中添加日志调试,并检查日志输出信息与预期是否一致:

    import logging
    
    def function_name(request):
        msc = ['a', 'b', 'c']
        listwww = ['A', 'B', 'C']
        context = {'msc': msc, 'listwww': listwww}
        logging.debug(context) # 添加日志调试
        return render(request, 'your_template.html', context)
    

    同时,在Django的 settings.py 文件中,将日志级别修改为 DEBUG,以便输出日志信息:

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'console': {
                'class': 'logging.StreamHandler',
            },
        },
        'root': {
            'handlers': ['console'],
            'level': 'DEBUG', #日志级别为DEBUG
        },
    }
    

    希望这些提示对您有所帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^