django 模板(1)

mvc(模型m:负责业务对象与数据库的对象

控制器c   :用户的交互(页面)

视图v: 使用户可以看到

)

mtv(

model(模型):负责业务对象与数据库的对象

Temlate(模板):负责把页面展示给用户

view(视图):负责业务逻辑,调用模型和模板

)

 

django中的特殊字符:

{{变量}}  {{逻辑}} for if

变量:

  字符,数字:{{变量}}  

  列表:{{列表名}}   {{for 值 in 列表名 }}     {{列表.0}} 索引取值

  字典:{{字典.name}} {{字典.keys}} 取到所有的key   {{字典.value}} 取到所有的value {{字典.items}}都可以取出但是套好多层

  对象:{{对象.方法或者属性}}   {{对象列表.索引.方法或者属性}}

注:当模板系统遇到一个(.)时,会按照如下的顺序去查询:

  1. 在字典中查询
  2. 属性或者方法
  3. 数字索引
#{{ 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中  后端同上   前端  直接获取即可

  

    LANGUAGE_CODE = 'en-us'
    TIME_ZONE = 'UTC'
    USE_I18N = True
    USE_L10N = False需要改变False
    USE_TZ = True
    DATETIME_FORMAT = 'Y-m-d H:i:s'  添加
safe进行转义:由于html进行了保护,所以有的需要进行safe操作
  value = """<a href='#'>点我</a>"""
  {{value|safe}}

自定义的filter:

  • 变量(输入)的值 - -不一定是一个字符串
  • 参数的值 - 这可以有一个默认值,或完全省略`
  • 1,创建
    •   在app01下 创建templatetags
      •   在templatetags下创建  myfilters.py

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

 

转载于:https://www.cnblogs.com/lnrick/p/9621739.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值