zoukankan      html  css  js  c++  java
  • Django2.x

    Django 模板过滤器

    • 定义: 在变量输出时对变量的值进行处理

    • 作用: 可以通过过滤器来改变变量的输出显示

    • 语法: {{ 变量 | 过滤器1: '参数1' | 过滤器2: '参数2' ... }}

    • 常用过滤器

      过滤器 说明
      lower 将字符串转换为全部小写
      upper 将字符串转换为全部大写
      safe 默认不对变量内的字符串进行HTML转义,传入HTML代码将会被执行
      add:'n' 将 value 的值增加 n
      truncatechars: 'n' 如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将可以翻译的省略号结尾
    # app 中的 urls.py
    from django.urls import path, re_path
    from . import views
    
    urlpatterns = [
    	path('test_filter', views.test_filter),
    ]
    
    
    # app 中的 views.py
    from django.template import loader
    from django.http import HttpResponse, HttpResponseRedirect
    from django.shortcuts import render
    
    def test_filter(request):
        name1 = 'admin'
        name2 = 'ROOT'
        num1 = 10
        str_script = "<script>alert('hello world')</script>"
    
        return render(request, 'test_filter.html', locals())
    
    
    # app 中的 templates/test_filter.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>测试过滤器</title>
    </head>
    <body>
    <h3>原变量: {{ name1 }}, upper后的变量值: {{ name1 | upper }}</h3>
    <h3>原变量: {{ name2 }}, lower后的变量值: {{ name2 | lower }}</h3>
    <h3>原变量: {{ num1 }}, add:'10'后的变量值: {{ num1 | add:'10' }}</h3>
    <!--<h3>原变量: {{ str_script }}, safe后的变量值: {{ str_script | safe }}</h3>-->
    <h3>原变量: {{ str_script }}</h3>
    <h3>str_script safe后的变量值: {{ str_script | safe }}</h3>
    
    </body>
    </html>
    

    模板的继承

    • 模板继承可以使父模板的内容重用,子模板直接继承父模板的全部内容并可以覆盖父模板中相应的块

    • 语法:

      • 定义父模板中的块block标签
      • 标识出哪些在子模板中是允许被修改的
      • block标签: 在父模板中定义,可以在子模板中覆盖
    • 语法 - 子模板中:

      • 继承模板 extends 标签(写在模板文件的第一行)

        • 例如: {% extends 'base.html' %}
      • 子模板重写父模板中的内容块

        • {% block block_name %}
        • 子模板中用来覆盖父模板中的 bolck_name 块中的内容
        • {% endblock block_name %}
    # app 中的 urls.py
    from django.urls import path, re_path
    from . import views
    
    urlpatterns = [
        path('base_index', views.base_view),
        path('music_index', views.music_view),
        path('sport_index', views.sport_view),
    ]
    
    
    # app 中的 views.py
    from django.template import loader
    from django.http import HttpResponse, HttpResponseRedirect
    from django.shortcuts import render
    
    def base_view(request):
        return render(request, 'base.html')
    
    def music_view(request):
        return render(request, 'music.html')
    
    def sport_view(request):
        return render(request, 'sport.html')
    
    
    # app中的 templates/base.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        {% block mytitle %}
        <title>首页</title>
        {% endblock mytitle %}
    </head>
    <body>
    
    {% block info %}
    <h3>这是首页中的内容</h3>
    {% endblock %}
    
    <a href="/base_index">首页</a>
    <a href="/music_index">音乐频道</a>
    <a href="/sport_index">体育频道</a>
    <br>
    <h4>有问题请联系: xxxxxxxxxx</h4>
    </body>
    </html>
    
    
    # app中的 templates/music.html
    {% extends 'base.html' %}
    
    {% block mytitle %}
    <title>音乐频道</title>
    {% endblock %}
    
    {% block info %}
    <h3>这是音乐频道的内容</h3>
    {% endblock %}
    
    
    # app中的 templates/sport.html
    {% extends 'base.html' %}
    
    {% block mytitle %}
    <title>体育频道</title>
    {% endblock %}
    
    {% block info %}
    <h3>这是体育频道的内容</h3>
    {% endblock %}
    
  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/gxfaxe/p/15017465.html
Copyright © 2011-2022 走看看