IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python循环遍历多值QuerySet类型问题的处理心得——嵌套字典 -> 正文阅读

[Python知识库]Python循环遍历多值QuerySet类型问题的处理心得——嵌套字典

搜索引擎需要查询到数据库中符合条件的所有网页并一一显示,前边介绍了单条语句的查询与显示,实战中需要将多条并列信息传入模板,列表肯定是不够的,这就考虑到了字典。

list = page.object_list

dict = {}#便于模板循环显示数据
#将返回字典加list字母为值,下标数字为键加入dict字典,
for i in range(0,len(list)):
    dict['list'+str(i)] = list[i]
#将数据行数count加入字典,便于模板遍历
return render(request,'XunLu_details/index.html',{'dict':dict,'count':count,'paginator':paginator,'page':page})

其中list是经由Paginator处理后需要在当前页上显示的所有内容(列表类型,但其中的值为相应的数据表类),我们生成一个字典dict,并向其加入len(list)个key值(list0,list1,list2......)

然后将字典与其他参数一并拼接为render字典中传入(也可用locals(),但不利于可读性),这样在模板层中就变成了循环显示嵌套字典中的值的问题(还要有可分离性,因为不同的字段要做不同处理,比如加粗,链接等)。

<div class="col-md-9">
    共找到{{count}}个网页 <a href="/">返回首页</a><br />
    {%for list,value in dict.items %}
    <div class="content">
        <h2><a target="_blank" href="{{value.url}}">{{value.title}}</a></h2>
        {{value.info}}
    </div>
    {%empty%}
    <h3>好像没有找到您想要的东西呢,换个关键词试试吧</h3>
    {%endfor%}
</div>

render字典中的值可以用{{}}来调用,获取到第一层字典,如{{count}};然后可以继续用字典中的items方法进行第二层调用,获取到key与对应的value值,此时的value值是单个数据表类,定义如下:

class Message(models.Model):
    #设置对应的表名
    class Meta:
        db_table = 'datatables'
    def __str__(self):
        return '%s|%s|%s|%s'%(self.id,self.title,self.url,self.info)
    id = models.AutoField(primary_key=True,null=False)
    title = models.CharField('标题',max_length=100,null=False)
    url = models.CharField('网址链接',max_length=300,null=False)
    info = models.CharField('详细信息',max_length=300)
    keyPerson = models.CharField('关键人物',max_length=20,null=False,default='谷爱凌')

故可以用显示类属性的方法显示其内容,如{{value.info}},同时也实现了格式分离,可以针对每一个类属性单独地增加样式。

参考:

Need 2 values to unpack in for loop;icon-default.png?t=M3C8https://blog.csdn.net/neve_give_up_dan/article/details/116238351django 模板遍历嵌套字典问题icon-default.png?t=M3C8https://blog.csdn.net/sky0Lan/article/details/112276924

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:32:27  更:2022-04-22 18:33:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:38:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码