mvc(模型m:负责业务对象与数据库的对象
控制器c :用户的交互(页面)
视图v: 使用户可以看到
)
mtv(
model(模型):负责业务对象与数据库的对象
Temlate(模板):负责把页面展示给用户
view(视图):负责业务逻辑,调用模型和模板
)
django中的特殊字符:
{{变量}} {{逻辑}} for if
变量:
字符,数字:{{变量}}
列表:{{列表名}} {{for 值 in 列表名 }} {{列表.0}} 索引取值
字典:{{字典.name}} {{字典.keys}} 取到所有的key {{字典.value}} 取到所有的value {{字典.items}}都可以取出但是套好多层
对象:{{对象.方法或者属性}} {{对象列表.索引.方法或者属性}}
注:当模板系统遇到一个(.)时,会按照如下的顺序去查询:
- 在字典中查询
- 属性或者方法
- 数字索引
#{{ name1 }}#}
{#{{ age1 }}#}
{#{{ hobby_list }}#}
{#<ul>#}
{# {% for hobby in hobby_list %}#}
{# <li>{{ hobby }}</li>#}
{# {% endfor %}#}
{#</ul>#}
{#{{ hobby_list.0 }}#}
{#{{ hobby_list.1 }}#}
{#<hr>#}
{#{{ name_dict.name1 }}#}
{#{{ name_dict.name3 }}#}
{#{{ name_dict.keys }}#}
{#{{ name_dict.values }}#}
{#{{ name_dict.items }}#}
{#<hr>#}
{#{% for key,value in name_dict.items %}#}
{# {{ key }}:{{ value }}#}
{#{% endfor %}#}
{#<hr>#}
{#{{ p1.sing }}#}
{#{{ p2.sing }}#}
{#{{ p_list }}#}
{#<hr>#}
{##}
{#{{ p_list.0.name }}#}
{#{{ p_list.0.sing }}#}
filters
空:
{{value|default:'nothing'}}
如果空返回nothing
全局的空(比较级大于default):在TEMPLATES中的options中添加:'string_if_invalid': '找不到',
filesizeformat:查看大小
{{value|filesizeformat}} 在后端是1024*1024*1024 显示的是kb mb gb
add增加:注意是字符串的话会拼接 如果是小数的话会报错
{{value|add:'2'}}
{{list1|add:list2}} 列表的话会将后边的值追加到前边的列表
lower:小写 可以和其他的函数用|进行链式操作 {{value|lower}}
upper大写 {{value|upper}}
title 标题(首字母大写) {{value|title}}
ljust 左对齐 {{value|ljust:'10'}} html标签移动
rjust 右对齐 {{value|rjust:'10'}} html标签移动
center 中心对齐 {{value|center:'10'}}
length返回的字符的长度,列表的长度 {{value|lenth}}
slice切片 {{value|slice:"2:-1"}}
first 取到第一个元素 {{value|first}}
last 取到最后的元素{{value|last}}
join列表转字符串 同python的join{{value|join:"//"}}
truncatechars 截断指定数量的字符 最后会显示... {{value|truncatechars:9}}
date格式化日期;
1,后端使用datetime.datetime.now() 前端{{value|date"Y-m-d H:i:s"}}
2,全局使用:在setting中 后端同上 前端 直接获取即可
自定义的filter:
- 变量(输入)的值 - -不一定是一个字符串
- 参数的值 - 这可以有一个默认值,或完全省略`
- 1,创建
- 在app01下 创建templatetags
- 在templatetags下创建 myfilters.py
- 在app01下 创建templatetags
2,进行添加的函数:
from django inport template
register = template.Library()
@register.filter(name='db') 起名
def add_b(value,arg):
return "{}_{}_b".format(value,arg)
@register.filter()
def add_b(value,arg):
return "{}_{}_b".format(value,arg)
3,使用
{% load myfilters%}
{{name|db:'very'}}