You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中用HTML表格展示MySQL数据,无渲染效果如何解决

问题根因

你的articleapp/urls.py路由配置错误,直接使用了TemplateView渲染模板,没有调用你编写的table_list视图函数,导致模板所需的tablelst上下文变量根本没有被传递到模板层,循环遍历空变量自然不会渲染出任何内容。

修复步骤

1. 修正articleapp/urls.py配置

首先导入你编写的视图,将路由关联到table_list视图函数而非TemplateView:

# 开头先导入依赖
from django.urls import path
from . import views

urlpatterns = [
    # 替换原有的TemplateView配置
    path('table_list/', views.table_list, name='table_list'),
]

2. 其他可排查项

如果修改路由后仍无数据,可以按以下顺序排查:

  • 确认company_rate表存在真实数据:进入Django Shell执行CompanyRate.objects.all(),检查返回的查询集是否非空
  • 视图文件顶部确认已经正确导入模型:from .models import CompanyRate
  • 修正模板的标签错误:你当前模板里写了两个<tbody>起始标签,没有闭合标签,将循环结束后的<tbody>改为</tbody>
  • 可以在模板中增加调试逻辑确认变量传递状态:
{% block content %}
<!-- 加在表格前调试用,正常显示后可以删除 -->
{% if tablelst %}
<p>成功获取到{{ tablelst|length }}条数据</p>
{% else %}
<p>未获取到任何数据</p>
{% endif %}

<table class="table table-hover table-responsive">
<tbody>
    {% for article in tablelst%}
    <tr>
        <td>{{ article.date }}</td>
        <td>{{ article.notice_name }}</td>
        <td>{{ article.event }}</td>
        <td>{{ article.basic_amount }}</td>
        <td>{{ article.num_of_company }}</td>
        <td>{{ article.avg_of_1365 }}</td>
        <td>{{ article.hd_rate }}</td>
        <td>{{ article.hd_num }}</td>
        <td>{{ article.hj_rate }}</td>
        <td>{{ article.hj_num }}</td>
        <td>{{ article.hm_rate }}</td>
        <td>{{ article.hm_num }}</td>
        <td>{{ article.url }}</td>
    </tr>
    {% endfor %}
</tbody> <!-- 这里修正为闭合标签 -->
</table>
{% endblock %}

内容的提问来源于stack exchange,提问作者Hyuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 16:09:04