您好,登錄后才能下訂單哦!
1、models.py
class Business(models.Model): prodline = models.CharField(max_length=32) code =models.CharField(max_length=32,null=True,blank=True) class Host(models.Model): nid = models.IntegerField(primary_key=True) hostname = models.CharField(max_length=32,blank=True,null=True,db_index=True) ip = models.GenericIPAddressField(blank=True,null=True,db_index=True) port = models.IntegerField(blank=True) prodline = models.ForeignKey(Business,to_field='id',on_delete=models.DO_NOTHING,null=True,blank=True)
2、數據
3、views.py
from django.shortcuts import render from models import * # Create your views here. def business(request): prodline1 = Business.objects.all() prodline2 = Business.objects.all().values('id','code') prodline3 = Business.objects.all().values_list('id','code') return render(request,'business.html',{'prodline1':prodline1,'prodline2':prodline2,'prodline3':prodline3})
分析:這里prodline1、prodline2、prodline3數據類型都是QuerySet,但內部數據是不同類型的。
prodline1內部是對象,prodline2內部是字段,prodline3內部是元組。
我們可以通過python manage.py shell 在命令行查看他們內部數據結構類型和數據結構
>>> from study.models import * >>> proline1 = Business.objects.all() >>> print type(proline1) <class 'django.db.models.query.QuerySet'> >>> prodline1 = Business.objects.all() >>> prodline1 [<Business: Business object>, <Business: Business object>, <Business: Business object>, <Business: Business object>] >>> prodline2 = Business.objects.all().values('id','code') >>> prodline2 [{'code': u'SPMS', 'id': 1}, {'code': u'IPMS', 'id': 2}, {'code': u'CPMS', 'id': 3}, {'code': u'AMS', 'id': 4}] >>> prodline3 = Business.objects.all().values_list('id','code') >>> prodline3 [(1, u'SPMS'), (2, u'IPMS'), (3, u'CPMS'), (4, u'AMS')]
prodline1 獲取到的是一個個對象組成的列表(也可以說是集合)。
prodline2 獲取到的也是一個個字典組成的列表(也可以說是集合)。
proline3 獲取到的是一個個元組組成的列表(也可以說是集合)。
templates模板中如何分別通過對象、字典、元組來循環取值?
business.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h2>業務線列表(對象)</h2> <ul> {% for row in prodline1 %} <li>{{ row.id }}-{{ row.code }}-{{ row.prodline }}</li> {% endfor %} </ul> <h2>業務線列表(字典)</h2> <ul> {% for row in prodline2 %} <li>{{ row.id }}-{{ row.code }}</li> {% endfor %} </ul> <h2>業務線列表(元組)</h2> <ul> {% for row in prodline3 %} <li>{{ row.0 }}-{{ row.1 }}</li> {% endfor %} </ul> </body> </html>
首先:模板語法取值都是使用“.“,對象和字典的取值方法一樣,點后面接字段名,而元組則是使用索引來取值,索引從0開始。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。