我正在渲染一个html模板的视图。我没有得到任何错误,但数据不会在页面上循环。
我有这个工作但是一旦我开始使用模板我遇到了问题。所以我知道它有效我只是不理解使用上下文来呈现响应。
我正在向api发出请求,然后将响应分配给变量。然后我根据响应的变量创建上下文。在这一点上,我知道我应该能够使用上下文变量访问数据。将响应分配给上下文并使用模板标记中的数据的正确方法是什么?
在视图中
def github(request):
jsonList = []
req = requests.get('https://api.github.com/users/DrkSephy')
str_response = req.content.decode('utf-8')
jsonList.append(json.loads(str_response))
parsedData = []
userData = {}
for data in jsonList:
userData['name'] = data['name']
userData['blog'] = data['blog']
userData['email'] = data['email']
userData['public_gists'] = data['public_gists']
userData['public_repos'] = data['public_repos']
userData['avatar_url'] = data['avatar_url']
userData['followers'] = data['followers']
userData['following'] = data['following']
moviesList = parsedData.append(userData)
context = {'moviesList': moviesList}
return render(request, 'serviceapp/github.html', context)
在html文件中
{% for movie in moviesList %}
<tr>
<td>{{ movie.name }}</td>
<td>{{ movie.blog }}</td>
<td>{{ movie.avatar_url }}</td>
<td>{{ movie.public_repos }}</td>
<td>{{ movie.public_gists }}</td>
<td>{{ movie.email }}</td>
<td>{{ movie.followers }}</td>
<td>{{ movie.following }}</td>
</tr>
{% endfor %}
答案 0 :(得分:0)
{% for moviesList in moviesList %}
^这里的变量都是相同的 - 你已经使用moviesList
作为整个列表,所以你不能再将它用于变量内部循环。使用这样的东西:
{% for item in moviesList %}
{{ item.name }}
...
{% endfor %}
编辑:
好的,所以我再次看了你的代码。如果填充正确,您是否尝试在视图中打印变量?因为他们不是。看看这一行:moviesList = parsedData.append(userData)
^您在此处执行的操作是将parsedData.append()
的结果(None
,因为追加是就地修改)分配给moviesList
变量,然后None
变量print(max(['a', 'cat', 'sat', 'g'], key=lambda s: (len(s), s)))
1}}。