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

如何在Django模板中展示数据库数据?我的代码无数据输出

Django模板无法获取视图传递的Student数据排查

问题场景

我正在学习Django,student应用的views.py、models.py以及模板index.html代码如下,但浏览器中看不到任何数据:

views.py 代码

from django.shortcuts import render
# from .models import Student
from student.models import Student


# Create your views here.
def home(request):
    student_data = Student.objects.all()
    context = {
        'student_data': student_data
    }
    return render(request, 'index.html', context )

models.py 代码

from django.db import models

class Student(models.Model):
    first_name=models.CharField( max_length=100 )
    last_name=models.CharField( max_length=100, blank=True, null=True )
    age=models.IntegerField()

index.html 模板代码

<p>
  {{ student_data }}
</p>

排查与解决步骤

  • 确认数据库存在Student数据
    进入Django Shell执行python manage.py shell,输入以下命令验证:

    from student.models import Student
    print(Student.objects.all())
    

    如果输出为空列表[],说明数据库无数据,先创建测试数据:

    Student.objects.create(first_name="张三", age=20)
    

    完成后刷新浏览器查看。

  • 修正模板渲染逻辑
    student_data是QuerySet对象,直接输出只会显示对象的字符串标识,建议遍历数据并添加空数据提示:

    <p>
      {% for student in student_data %}
        <div>{{ student.first_name }} - {{ student.age }}</div>
      {% empty %}
        <div>暂无学生数据</div>
      {% endfor %}
    </p>
    
  • 验证视图上下文传递
    在视图中添加打印语句,确认student_data是否有效:

    def home(request):
        student_data = Student.objects.all()
        print(student_data)  # 查看控制台输出
        context = {
            'student_data': student_data
        }
        return render(request, 'index.html', context )
    

    运行项目时查看控制台,若输出有数据,问题在模板;若为空,检查模型导入或数据库数据。

  • 检查应用与模板配置
    确保student应用已添加到项目settings.py的INSTALLED_APPS:

    INSTALLED_APPS = [
        ...
        'student',
    ]
    

    同时确认模板路径配置正确:项目settings.py的TEMPLATES中DIRS包含模板文件夹,或student应用下存在templates/student子目录(Django会自动扫描应用内的templates目录)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:05:05