使用 django 在 HTML 页面中显示数据库中的数据

新手上路,请多包涵

我正在尝试使用 python 将数据添加到 html 页面,但除了页面上的正常元素外,该页面是空白的。

这是我的 views.py

 def index(request):
next = request.GET.get('next', '/admin')
if request.method == "POST":
    username = request.POST['username']
    password = request.POST['password']

    user = authenticate(username=username, password=password)

    if user is not None:
        if user.is_active:
            login(request, user)
            data = Students.objects.all()
            return render_to_response("login/profile.html", {'data', data})
        else:
            HttpResponse("Inactive User.")
    else:
        print("User Not Found!")
        return HttpResponseRedirect(settings.LOGIN_URL)

return render(request, 'login/home', {'redirect_to':next})

这是我的学生模块:

 class Students(models.Model):
    student_number = models.IntegerField(primary_key=True)
    f_name = models.CharField(max_length=20, blank=True, null=True)
    l_name = models.CharField(max_length=20, blank=True, null=True)
    dob = models.DateField(blank=True, null=True)
    address = models.CharField(max_length=144, blank=True, null=True)
    county = models.CharField(max_length=20, blank=True, null=True)
    phone_number = models.CharField(max_length=45, blank=True, null=True)
    email = models.CharField(max_length=45, blank=True, null=True)
    gpa = models.IntegerField(blank=True, null=True)
    course_code = models.ForeignKey(Courses, models.DO_NOTHING, db_column='course_code', blank=True, null=True)
    college = models.ForeignKey(Colleges, models.DO_NOTHING, blank=True, null=True)
    passwords = models.CharField(max_length=60, blank=True, null=True)

    class Meta:
        db_table = 'students'

我的 html 页面:

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>HEY!!!!</h1>
    <p>
        {{ data.f_name}}
        {{ data.l_name }}
        {{ data.student_number }}
        {{ data.dob }}
    </p>
     <a href="/">logout</a>
</body>
</html>

我已经查找了一段时间,但我似乎无法找到为什么它没有在我的页面上显示任何内容。如果有人可以提供帮助,我将不胜感激!

原文由 Luke Kavanagh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 850
2 个回答

我花了一段时间,但我想我终于找到了问题的答案。

将此添加到 views.py

 data = Students.objects.all()

stu = {
    "student_number": data
}

return render_to_response("login/profile.html", stu)

然后它遍历存储在 stu 变量中的数据

{% for student in student_number %}
    {{ student.f_name}}
    {{ student.l_name }}
    {{ student.student_number }}
    {{ student.dob }}
{% endfor %}

原文由 Luke Kavanagh 发布,翻译遵循 CC BY-SA 3.0 许可协议

在您的上下文中,您传递 Student.objects.all() 这是一个学生列表。然后将 is 视为模板中的单个对象。您需要遍历列表。

原文由 Mad Wombat 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题