django学习日志(模板的渲染过程)第三部分:模板语法
定义数据模型
- 修改WhatsTemplate\App\models.py
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)
向表中添加数据
- 执行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>
- 启动django服务 访问 http://127.0.0.1:8000/app/showdogs/ 查看显示内容
语法
-
流程控制:遍历
-
修改文件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>