Python 使用django在HTML页面中显示数据库中的数据
我试图使用python将数据添加到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
视图。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%}
谢谢您的帮助,但我仍然只能得到一个空白页面,执行完全相同的操作并从数据库中获取结果,但我执行页面刷新时,数据不会填充表单数据库