zoukankan      html  css  js  c++  java
  • doraemon的python html中的过滤器、if、for条件句

    ### 11.4 HTML中Filter过滤器
    
    MVC和MTV
    
    - MVC:
      - M:model 模型
      - V:view视图 HTML
      - C:controller 控制器 ——路由器 传递指令、业务逻辑
    - MTV:
      - M: model 模块 ORM
      - T:template 模板 HTML
      - V:view 业务逻辑
    
    模板和变量之间的关系
    
    - 在html中变量都用{{}}接收
    - 方法有:.索引 .key .属性 .方法
      - {{list.索引}}   ——正向索引
      - {{dic.keys}}
      - {{dic.value}}
      - {{dic.items}}
      - {{pub.name}}
    
    #### 11.4.1 filter过滤器
    
    语法:{{value|filter_name:参数}}
    
    内置过滤器
    
    - default     {{value|default:"nothing"}}  #变量名不存在或者为空的时候,显示的默认值
    
    - filesizeformat  文件的大小
    
    - add  相当于加法,字符串的拼接、列表的拼接
    
    - slice    {{hobby|slice:"-2:0:-1"}}   切片
    
    - date    {{now|date:"Y-m-d H:i:s"}}
    
    - ```python
      #setting中的配置(设置时间的默认格式):
      USER_L10N = False
      DATETIME_FORMAT = 'Y-m-d H:i:s'
      ```
    
    - safe  如果传HTML的语句,会进行安全处理,将其转化成字符串,safe能将html语句直接进行传递
    
    - length 取长度
    
    - join  使用字符串连接列表
    
    - first  取第一个
    
    - last 取最后一个
    
    
    
    自定义filter
    
    1. 在app下创建一个名为templatetags的python
    2. 在python中创建py文件,文件名自定义为任何名字。例如(my_tags.py)
    3. 在该文件中写:
    
    ```python
    from django import template
    
    register = template.Library()   #register也不能改变
    ```
    
       4.写函数+装饰器
    
    ```python
    @register.fliter
    def add_xx(value,arg)   #最多两个参数
        return "{}-{}".format(value,arg)
    ```
    
       5.在html中使用
    
    ```html
    {% load my_tags%}
    {{'liujia'|add_xx:'nb'}}
    ```
    
    
    
    ### 11.5 for循环和if判断
    
    ```html
    {% for book in all_book%}
        <tr>
            .......
        </tr>
    {% empty %}
        <td colspan='s' style='text-algin:center'>没有相关的数据</td>    #当循环的列表是空的时候
    {% endfor %}
    ```
    
    foorloop
    
    ```html
    {% for i in list %}
        {{i}}
        {{forloop.conuter}}
    {% endfor %}
    
    counter 从1开始
    conuter0  从0开始
    recounter 到1结束
    recounter0 到0结束
    ```
    
    
    
    with
    
    ```html
    {% with 变量 as new %}
    {{new}}
    {%endwith%}
    ```
    
    
    
    连续判断
    
    - python 10>5>1 ----> 10>5 and 5>1 ----->true
    - js    10>5>1 ------>10>5---> true>1-----false
    - 模板中不支持连续判断,也不支持算数运算
    
    csrf_token
    
    - csrf 跨站请求伪造
    - 浏览器从钓网站获取了银行的form表单,然后将填好的表单传给银行来进行诈骗、转账
  • 相关阅读:
    2018-2019-2 20189212 《网络攻防技术》第一周作业
    2017、5、4
    Pyinstaller 打包exe 报错 "failed to execute script XXX"的一种解决方案
    解决 Onenote 默认全角输入的一种解决办法(输入法已经设置为默认半角)
    OneDrive一直后台占用CPU的一种解决办法
    etimer
    简单三层BP神经网络学习算法的推导
    win10无法设置移动热点的一种解决办法
    如何恢复误删的OneNote页面
    安装mysql遇到的坑--->Can't connect to MySQL server on 'localhost' (10061)
  • 原文地址:https://www.cnblogs.com/doraemon548542/p/11609112.html
Copyright © 2011-2022 走看看