Django框架学习笔记(14.一对多跨表操作)
来源:互联网 发布:linux开机自启动脚本 编辑:程序博客网 时间:2024/06/06 13:18
继续上次的Django工程,在数据库中加入一些数据:
在views.py加入:
def host(request): v1 = models.Host.objects.filter(nid__gt=0) return render(request, 'host.html', {'v1': v1})
host.html:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><h1>业务线列表</h1><table border="1"> <thead> <tr> <th>主机名</th> <th>IP</th> <th>端口</th> <th>业务线名称</th> </tr> </thead> <tbody> {% for row in v1 %} <tr hid="{{ row.nid }}" bid="{{ row.b_id }}"> <td>{{ row.hostname }}</td> <td>{{ row.ip }}</td> <td>{{ row.port }}</td> <td>{{ row.b.caption }}</td> </tr> {% endfor %} </tbody></table></body></html>
运行:
同样这里也可以有三种方法:
views.py:
def host(request): v1 = models.Host.objects.filter(nid__gt=0) v2 = models.Host.objects.filter(nid__gt=0).values('nid', 'hostname', 'b_id', 'b__caption') v3 = models.Host.objects.filter(nid__gt=0).values_list('nid', 'hostname', 'b_id', 'b__caption') return render(request, 'host.html', {'v1': v1, 'v2': v2, 'v3': v3})
host.html:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><h1>业务线列表(对象)</h1><table border="1"> <thead> <tr> <th>主机名</th> <th>IP</th> <th>端口</th> <th>业务线名称</th> </tr> </thead> <tbody> {% for row in v1 %} <tr hid="{{ row.nid }}" bid="{{ row.b_id }}"> <td>{{ row.hostname }}</td> <td>{{ row.ip }}</td> <td>{{ row.port }}</td> <td>{{ row.b.caption }}</td> </tr> {% endfor %} </tbody></table><h1>业务线列表(字典)</h1><table border="1"> <thead> <tr> <th>主机名</th> <th>业务线名称</th> </tr> </thead> <tbody> {% for row in v2 %} <tr hid="{{ row.nid }}" bid="{{ row.b_id }}"> <td>{{ row.hostname }}</td> <td>{{ row.b__caption }}</td> </tr> {% endfor %} </tbody></table><h1>业务线列表(对象)</h1><table border="1"> <thead> <tr> <th>主机名</th> <th>IP</th> <th>端口</th> <th>业务线名称</th> </tr> </thead> <tbody> {% for row in v1 %} <tr hid="{{ row.nid }}" bid="{{ row.b_id }}"> <td>{{ row.hostname }}</td> <td>{{ row.ip }}</td> <td>{{ row.port }}</td> <td>{{ row.b.caption }}</td> </tr> {% endfor %} </tbody></table><h1>业务线列表(元组)</h1><table border="1"> <thead> <tr> <th>主机名</th> <th>业务线名称</th> </tr> </thead> <tbody> {% for row in v3 %} <tr hid="{{ row.0 }}" bid="{{ row.2 }}"> <td>{{ row.1 }}</td> <td>{{ row.3 }}</td> </tr> {% endfor %} </tbody></table></body></html>
运行后:
阅读全文
0 0
- Django框架学习笔记(14.一对多跨表操作)
- PythonWeb开发Django框架学习(十)数据库一对多和多对多操作
- Django框架学习笔记(15.增加一对多数据简易示例)
- Django框架学习笔记(9.ORM基本操作)
- Django框架学习笔记(26.ModelForm操作)
- Django框架学习笔记(27.Ajax简单操作)
- Django学习笔记(九)--django框架的bug总结
- Django学习笔记(四)Django使用操作数据库
- django 一对多关系操作
- django 一对多关系操作
- PYTHON框架之DJANGO学习笔记(十二)
- PYTHON框架之DJANGO学习笔记(十四)
- Django框架学习笔记(1.安装创建初识)
- Django框架学习笔记(4.简单的总结)
- Django框架学习笔记(12.基本知识小总结)
- Django框架学习笔记(19.自定义分页)
- Django框架学习笔记(20.Cookies简易实例)
- Django框架学习笔记(21.Session实例)
- c语言指针题(1)
- 高可用高性能yii2.0
- 求生大逃亡
- 重磅下载!678页阿里内部技术干货
- MySQL存储类型选择
- Django框架学习笔记(14.一对多跨表操作)
- 图的邻接矩阵和邻接表存储
- Web 动画帧率(FPS)计算
- java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig
- 前端工作越来越难找,是不是已经饱和了?
- android Set的遍历
- node.js中检查目录是否存在
- Firefox Quantum 发布一个月安装量 1.7 亿
- python正则表达式的学习