Django模板
Posted baoshuang0205
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django模板相关的知识,希望对你有一定的参考价值。
MVC框架和MTV框架
MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点。
Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。
Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。
Django的MTV模式
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理, view再调用相应的Model和Template
Django框架图示
Django模板系统
模板用法之变量.的用法
Django模板中只需要记住俩种特殊符号:
{{ }} 和 {% %}
{{ }}表示变量,在模板渲染的时候替换成值,{% %} 标签 表示逻辑相关的操作。
变量
{{ 变量名 }}
变量名由字母数字和下划线组成。
点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值。
urls.py
from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r‘^admin/‘, admin.site.urls), url(r‘^template_test/‘,views.template_test), [
view中代码:
class Person: #定义一个类 def __init__(self,name,age): self.name=name self.age=age def eat (self): return ‘正在吃草‘ def __str__(self): return ‘<Person : {} - {} >‘.format(self.name,self.age) def template_test (request): #定义一个函数 string=‘张张‘ age=83 sex_direction=[‘小小‘ , ‘大大‘] #取向 dic={‘name‘ : "张张" ,"pwd" : ‘zz‘} p1=Person(‘小小‘,17) return render(request,"template_test.html" , { " string" : string, "age" : age, "sex_direction" : sex_direction , "dic" : dic , ‘p1‘ : p1 })
模板中支持的写法:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {{string}} <br> {{age}} <br> {{sex_direction.0}} {{sex_direction.1}} #.索引就能拿到对应的值 <br> {{dic}} {{dic.name}} {{dic.pwd}} <br> {{dic.keys}} <br> {{dic.values}} <br> {{dic.items}} <br> {{p1}} {{p1.name}} {{p1.age}} {{p1.eat}} </body> </html>
注:当模板系统遇到一个(.)时,会按照如下的顺序去查询:
- 在字典中查询
- 属性或者方法
- 数字索引
模板语法之过滤器 Filters
翻译为过滤器,用来修改变量的显示结果。
语法: {{ value|filter_name:参数 }} #参数最多一个
‘|‘左右没有空格没有空格没有空格
default
{{ value|default:"nothing"}}
如果value值没传的话就显示nothing
注:TEMPLATES的OPTIONS可以增加一个选项:string_if_invalid:‘找不到‘,可以替代default的的作用。
filesizeformat
将值格式化为一个 “人类可读的” 文件尺寸 (例如 ‘13 KB‘, ‘4.1 MB‘, ‘102 bytes‘, 等等)。例如:
{{ value|filesizeformat }}
如果 value 是 123456789,输出将会是 117.7 MB。
add
给变量加参数
lower
upper
title
ljust
rjust
center
length
slice
first
last
join
truncatechars
date
safe
以上是关于Django模板的主要内容,如果未能解决你的问题,请参考以下文章