Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用django在HTML页面中显示数据库中的数据_Python_Html_Django - Fatal编程技术网

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

Python 使用django在HTML页面中显示数据库中的数据,python,html,django,Python,Html,Django,我试图使用python将数据添加到html页面,但是除了页面上的正常元素之外,该页面是空白的 这是我的视图。py: def index(request): next = request.GET.get('next', '/admin') if request.method == "POST": username = request.POST['username'] password = request.POST['password'] user = authentica

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

这是我的
视图。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>

标题
嘿

{{data.f_name}
{{data.l_name}
{{data.student_number}
{{data.dob}


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

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

另一个可能的原因是,当您的
请求.method
不是
POST
(应该是
GET
)时,您没有在上下文中传递
数据。您返回:

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

相反。当您有未定义的变量时,Django模板不会给您错误,但它也不会显示任何内容。

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

将其添加到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 %}

我已经添加了这个
{%for----in----%}
,但我不确定应该用什么来代替连字符?请看文档中的示例
{%for student in data%}
谢谢您的帮助,但我仍然只能得到一个空白页面,执行完全相同的操作并从数据库中获取结果,但我执行页面刷新时,数据不会填充表单数据库