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'}}