Django版本2.1.3
Python 3.7版
编写示例代码只是为了了解 Django 。现在,我使用的是模板,在呈现变量时我的运气是0。
在views.py
文件夹中,我创建了一个小词典,并将其传递给变量 content
from django.shortcuts import render
# Create your views here.
posts = [
{
'Title': 'Challanger 1',
'Name': 'Sammy',
'Age': '33',
'Food': 'Seafood'
},
{
'Title': 'Challanger 2',
'Name': 'Sammy',
'Age': '33',
'Food': 'Seafood'
}
]
def home(request):
content = {
'posts': posts
}
return render(request, 'blog/home.html', content)
在我的home.html
文件中,我在{{variable}}
旁边添加了一些 123 ,以确保.html
文件已连接到{{ 1}}。当我view.py
时,只显示123,而我的py manage.py runserver
{{variables}}
本地主机:8000 产生:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
{% for post in posts %}
<p>123 {{ post.name }}</p>
<h1>123 {{ post.title }}</h1>
<h1>123 {{ post.age }}</h1>
{% endfor %}
</body>
</html>
当我从浏览器中打开视图源时:
123
123
123
123
123
123
旁注:当我进入<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p>123 </p>
<h1>123 </h1>
<h1>123 </h1>
<p>123 </p>
<h1>123 </h1>
<h1>123 </h1>
</body>
</html>
文件时,我注意到只有home.html
和{{post.title}}
自动填充,而{{post.name}}
和{{post.age}}
永远不会自动填充。
有时候,当我重写代码时,我已经删除了{{post.food}}
文件中的所有内容,而没有home.html
自动填充。无论哪种方式,最终结果都相同,变量不会加载。
答案 0 :(得分:1)
您在模板中使用post.name
(全部小写),但是您在python代码中定义了字典,以Name
(大写N)作为键。
尝试使用{{ post.Name }}
。
答案 1 :(得分:0)
这是问题所在,字典键区分大小写。 尝试以下代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
{% for post in posts %}
<p>123 {{ post.Name }}</p>
<h1>123 {{ post.Title }}</h1>
<h1>123 {{ post.Age }}</h1>
{% endfor %}
</body>
</html>