从视图函数像前端传值,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>
目前效果如下
{% for i in listwww %}
<th>i</th>
{% endfor %}
你看标签中的i是不是没加{}?
不知道你这个问题是否已经解决, 如果还没有解决的话:看起来代码逻辑没有问题。您可能需要检查以下几个方面:
your_template.html
中的 <table>
标签是否正确结束。msc
是否为空,如果为空则不会有任何显示。如果您已经排除了以上可能性,您可以进一步检查以下方面:
最后,如果您还无法确定问题所在,您可以尝试在视图函数中添加日志调试,并检查日志输出信息与预期是否一致:
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
},
}
希望这些提示对您有所帮助。