Django模板语法取值-创新互联

1、models.py

创新互联公司专业为企业提供吴桥网站建设、吴桥做网站、吴桥网站设计、吴桥网站制作等企业网站建设、网页设计与制作、吴桥企业网站模板建站服务,10年吴桥做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
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、数据

Django 模板语法取值

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开始。

Django 模板语法取值

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

本文标题:Django模板语法取值-创新互联
URL标题:https://www.cdcxhl.com/article36/dedcsg.html

成都网站建设公司_创新互联,为您提供网站内链企业网站制作App开发网站设计软件开发网站收录

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设