django学习日志(模板的渲染过程)第三部分:模板语法

django学习日志(模板的渲染过程)第三部分:模板语法

定义数据模型

from django.db import models

# Create your models here.
class Dog(models.Model):
    dname = models.CharField(max_length=20,)
    dgender = models.NullBooleanField(default=None)
    dfood = models.CharField(max_length=20)
  • 执行数据迁移
    python manage.py makemigrations
    python manage.py migrate

  • 使用sqlite数据库 管理数据

向表中添加数据

  • 执行sql语句
    insert into “App_dog” (dname,dgender,dfood) values (‘中华田园犬’,1,‘饭菜’);
    insert into “App_dog” (dname,dgender,dfood) values (‘藏獒’,1,‘东北虎’);
    insert into “App_dog” (dname,dgender,dfood) values (‘哈士奇’,0,‘各种家里的东西’);

创建新模板

  • 新增文件 WhatsTemplate\templates\dogs.html
  • 新增文件WhatsTemplate\App\urls.py

新建路由管理

  • 修改文件WhatsTemplate\WhatsTemplate\urls.py
from django.conf.urls import url, include
from django.contrib import admin
...
...
...
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.index),

    url(r'^app/', include('App.urls')),----------
]
  • 修改文件WhatsTemplate\App\urls.py
from django.conf.urls import url, include

try:
    from WhatsTemplate import views
except:
    from venv.WhatsTemplate.WhatsTemplate import views

urlpatterns = [
    url(r'^showdogs/', views.showDogs),
]

给模板传数据

  • 修改WhatsTemplate\WhatsTemplate\views.py
try:
    from App.models import *
except:
    from venv.WhatsTemplate.App.models import *
。。。
。。。
。。。

def showDogs(request):
    ds = Dog.objects.all()
    dataDict = {
        'dogs':ds,
    }
    return render(request,'dogs.html',context=dataDict)
    
  • 添加模板语法,修改文件WhatsTemplate\templates\dogs.html
<body>
   {{ dogs }}
</body>

语法

  • 流程控制:遍历

  • 修改文件WhatsTemplate\templates\dogs.html

<body>
   {{ dogs }}
    <ul>
        {% for dog in dogs %}
            <li>{{ dog.dname }}-{{ dog.dgender }}-{{ dog.dfood }}</li>
        {% endfor %}
    </ul>
</body>
  • 浏览器显示
    显示的内容
  • 显示性别
  • 修改文件 WhatsTemplate\App\models.py
class Dog(models.Model):
    dname = models.CharField(max_length=20,)
    dgender = models.NullBooleanField(default=None)
    dfood = models.CharField(max_length=20)

    def getGender(self):
        if self.dgender == None:
            return '不详'
        elif self.dgender == True:
            return '公狗'
        else:
            return '母狗'
  • 修改模板WhatsTemplate\templates\dogs.html
<ul>
    {% for dog in dogs %}
        <li>{{ dog.dname }}-{{ dog.getGender }}-{{ dog.dfood }}</li>
    {% endfor %}
</ul>

在这里插入图片描述

  • 显示指定下标的内容
  • 修改WhatsTemplate\templates\dogs.html
<ul>
    {% for dog in dogs %}
        <li>{{ dog.dname }}-{{ dog.getGender }}-{{ dog.dfood }}</li>
    {% endfor %}
    <hr>
    {{ dogs.0.dname }}-{{ dogs.0.getGender }}-{{ dogs.0.dfood }}<br>
    {{ dogs.1.dname }}-{{ dogs.1.getGender }}-{{ dogs.1.dfood }}<br>
    {{ dogs.2.dname }}-{{ dogs.2.getGender }}-{{ dogs.2.dfood }}
</ul>

在这里插入图片描述

  • 传入字典的使用
  • 修改 WhatsTemplate\WhatsTemplate\views.py
def showDogs(request):
    ds = Dog.objects.all()
    dataDict = {
        'dogs':ds,
        'data':{
            'resultCode':200
        }
    }
    return render(request,'dogs.html',context=dataDict)
  • 修改WhatsTemplate\templates\dogs.html
    <hr>
    {{ dogs.0.dname }}-{{ dogs.0.getGender }}-{{ dogs.0.dfood }}<br>
    {{ dogs.1.dname }}-{{ dogs.1.getGender }}-{{ dogs.1.dfood }}<br>
    {{ dogs.2.dname }}-{{ dogs.2.getGender }}-{{ dogs.2.dfood }}
    <br>
    <hr>
    {{ data.resultCode}}
</body>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值