Django遍历请求返回的余额数据并在HTML模板表格中展示
实现步骤
1. 先修正视图代码(处理字节转字典+修正拼写错误)
你当前有两处需要先修复的问题:
- 导入的变量名为
b2c2_response_content,你上下文里拼写错误为b2c2_reponse_content(缺失字母s) - 变量存储的是bytes类型的JSON字符串,无法直接在模板中遍历,需要先解析为Python字典
修正后的视图代码如下:
import json from .api_balances.b2c2 import b2c2_response_content def b2c2(request): """ A view to return b2c2 page """ # 解析bytes类型的JSON为Python字典 balance_dict = json.loads(b2c2_response_content) context = { 'balance_dict': balance_dict, } return render(request, 'home/b2c2.html', context)
2. 编写b2c2.html模板代码
使用Django模板的for循环遍历字典的键值对生成表格即可,示例代码如下:
<table border="1" cellpadding="8" cellspacing="0"> <thead> <tr> <th>币种</th> <th>余额</th> </tr> </thead> <tbody> {% for currency, amount in balance_dict.items %} <tr> <td>{{ currency }}</td> <td>{{ amount }}</td> </tr> {% endfor %} </tbody> </table>
可选优化
- 若需要过滤掉余额为0的币种,可在循环中增加判断:
{% for currency, amount in balance_dict.items %} {% if amount != "0" %} <tr> <td>{{ currency }}</td> <td>{{ amount }}</td> </tr> {% endif %} {% endfor %}
- 若需要统一格式化余额的小数位数,可使用Django自带的
floatformat模板过滤器:
<td>{{ amount|floatformat:2 }}</td>
内容的提问来源于stack exchange,提问作者Jack_T
相关产品推荐
相关产品推荐

