【问题标题】:Display data from a database in a HTML page using django使用 django 在 HTML 页面中显示数据库中的数据
【发布时间】:2016-08-06 11:57:25
【问题描述】:

我正在尝试使用 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>

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

【问题讨论】:

    标签: python html django


    【解决方案1】:

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

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

    【讨论】:

    • 做完全相同的事情并从 db 中获取结果,但是当我进行页面刷新时,数据不会填充表单 db
    【解决方案2】:

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

    【讨论】:

    【解决方案3】:

    另一个可能的原因是当您的request.method 不是POST(应该是GET)时,您没有在上下文中传递data。你回来了:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-29
      • 2018-01-15
      • 2016-08-28
      • 2020-12-26
      • 2022-11-21
      • 1970-01-01
      • 2023-03-22
      • 2022-01-24
      相关资源
      最近更新 更多