zoukankan      html  css  js  c++  java
  • Django——模板层(模板的导入和继承,静态文件相关,inclusion_tag的使用)

    一、模板的导入和继承

    1 模板的导入
        -第一步:新建一个 xx.html,把好看的模板写入
            <div class="panel panel-danger">
                <div class="panel-heading">
                    <h3 class="panel-title">重金求子</h3>
                </div>
                <div class="panel-body">
                    详情点击:<a href="http://www.baidu.com">疯狂点我</a>
                </div>
            </div>
        -第二步:再你想用的地方
            {% include 'xx.html' %}
            
            
    2 模板的继承(母版)
        -第一步:写一个母版,写空盒子
               {% block top %}
                
                {% endblock %}
        -第二步:某个页面要使用母版,引入,扩写盒子
            {% extends 'base.html' %}
            {% block top %}
                index页面
            {% endblock %}
        

    二、静态文件相关

    # 设置成静态文件的三种方式
        第一种: <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
        第二种:
        {% load static %}
        <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
        第三种:
        {% load static %}
        <link rel="stylesheet" href="{% get_static_prefix %}bootstrap/css/bootstrap.min.css">
    
    # 特殊用法
        {% load static %}
        {% static "images/hi.jpg" as myphoto %}
        <img src="{{ myphoto }}"></img>
        
        {% load static %}
        {% get_static_prefix as static %}
        <img src="{{ static }}images/hi.jpg" alt="Hi!" />

    三、inclusion_tag的使用

    主要作用:通过渲染一个模板来显示一些数据

    例如,Django的Admin界面使用自定义模板标签显示"添加/更改"表单页面底部的按钮。这些按钮看起来总是相同,但链接的目标却是根据正在编辑的对象而变化的。

    这种类型的标签被称为"Inclusion 标签",属于自定义标签的一种。

    inclusion_tag 多用于返回html代码片段

    # 可以生成一片模板中的代码块
    # 使用:5步
        -第一步:在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag
        -第二步:在app中创建templatetags包(包名只能是templatetags,不能改)
        -第三步:在包内,新建py文件(如:my_tags.py)
        -第四步:写代码(inclusion_tag)
          # inclusion_tag,传一个模板文件
        @register.inclusion_tag('left.html')
        def left(num):
            # dic={0:第0页,1:第1页,2:第2页}
            dic = {i: '第%s页' % i for i in range(num)}
            # 固定返回的必须是字典
            print(dic)
            return {'data': dic}
    
        @register.inclusion_tag('beautiful.html')
        def beautiful(title, url):
            return {'title': title, 'url': url}
        -第五步使用:(模板),先load,再使用
            {% load my_tags %}
            {% left 5%}
            {% beautiful '名字' '地址'%}
            
            
    # 它跟tag有什么不同?
        -tag需要再代码中写html的东西
        -inclusion_tag代码跟模板分离

     更多详情:https://www.cnblogs.com/liuqingzheng/articles/9509806.html

  • 相关阅读:
    http状态大全
    goaccess 分析日志
    laravel 初识
    mac 安装wget
    python 16进制转成中文
    zeromq安装---php-zmq
    Mac Yosemite 10.10 编辑mac的配置
    Mac Yosemite 10.10 下利用 Launchctl 自启动 mysql
    MacBook设置终端命令行的颜色高亮显示
    XPath 常用语法札记
  • 原文地址:https://www.cnblogs.com/guojieying/p/13800854.html
Copyright © 2011-2022 走看看