zoukankan      html  css  js  c++  java
  • 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'}}

  • 相关阅读:
    呵呵
    geoserver中WMS服务详细说明
    Linux的用户和用户组管理
    linux ftp配置
    linux下vi命令大全
    linux基本命令大全
    Python ConfigParser
    java 小程序分析:参数传递
    java final
    java静态初始化块(静态域)
  • 原文地址:https://www.cnblogs.com/lnrick/p/9621739.html
Copyright © 2011-2022 走看看