组件

  1. 将一些功能标签写在一个html文件里,这个文件作为一个组件,如果那个文件需要就直接拿过来使用即可;

    这是title.html文件,写了一个导航栏,作为一个公用的组件
    <div style="background-color: cyan;width: 100%;height: 40px;">
    <span style="font-size: 20px;">首页</span>
    <span style="font-size: 20px;">搜索</span>
    <span style="font-size: 20px;">登录</span>
    <span style="font-size: 20px;">注册</span>
    </div> 引用方式:
    {% include 'title.html' %}
    将这个语句放在你html文件需要的位置;就会将这这个导航栏应用过来

自定义过滤器

  1. 首先在app应用下边创建一个文件夹 ---- templatetags (必须是这个名字,不能改变)

  2. 在这个文件夹里边写入自己的python的逻辑文件,名字随意 ,这个文件的名字是tag

    # 下面是一个自定义的过滤器
    from django import template
    # 导入django自带的包
    register = template.Library() # register 名字不能改变,注册器
    #在你写的函数头部加上这个装饰器,这就是一个过滤器
    # 这是无参数的过滤器
    @register.filter
    def filter(n1):
    '''
    这是一个子自定义的过滤器,无参数的过滤器
    :param n1: 接收的在html文件中的过滤器中的管道符前边的那个变量的值
    :return:
    '''
    return n1 + '你好' # 这是有参数的过滤器
    @register.filter
    def filter2(n1,n2):
    '''
    这是一个子自定义的过滤器,有参数的过滤器
    :param n1: 接收的在html文件中的过滤器中的管道符前边的那个变量的值
    :param n2: 传入的参数,管道符后边的,如果不需要传参数就不要写,
    :return:
    ''' return n1 + n2
  3. 在HTML文件中的应用

    # 首先导入tag.py这个文件
    {% load tag %} # 无参数的使用方法
    <h1>{{ name|filter2}}</h1> # 有参数的使用方法
    <h1>{{ name|filter2:'你好坏'}}</h1>
  4. 文件中需要的参数是在视图文件中传入的

    def home(request):
    name = 'adrian'
    return render(request,'home.html',{'name':name})

自定义标签

  1. 首先在app应用下边创建一个文件夹 ---- templatetags (必须是这个名字,不能改变)

  2. 在这个文件夹里边写入自己的python的逻辑文件,名字随意 ,这个文件的名字是tag

    # 下面是一个自定义标签
    from django import template
    # 导入django自带的包
    register = template.Library() # register 名字不能改变,注册器
    #在你写的函数头部加上这个装饰器,这就是一个自定义标签 @register.simple_tag
    def filter2(n1,n2): return n1 + n2
  3. 在HTML文件中的应用

    # 首先导入tag.py这个文件
    {% load tag %} <h1>{% filter 'x' 'o' %}</h1>
  4. 文件中需要的参数是在视图文件中传入的

    def home(request):
    name = 'adrian'
    return render(request,'home.html',{'name':name})

inclusion_tag ---- 用于返回html代码片段

  1. 这个方法是给你需要的html页面返回一个html文件的片段,通过渲染一个html文件模板来显示一些数据

    应用的创景一般是网页的左侧下拉栏,这种下拉栏一般网页中的应用多,但是数据有不一样,所以就使用inclusion_tag来做不同页面的不同数据需求的处理;

  2. 首先写一个简单的函数

    from django import template
    register = template.Library() # register 名字不能改变,注册器
    # 在这个函数的头部加一个有参装饰器
    @register.inclusion_tag('result.html')
    # 这个装饰器的参数是一个html页面
    def inclusion(): return {'l1':['抽烟','喝酒','烫头']}
    # 在定义的这个字典中的键 l1 必须是result这个html文件中的for所有循环的列表名,这两个名字必须一致
  3. result这个html文件的代码

    <ul>
    {% for i in l1 %}
    <li>{{ i }}</li>
    {% endfor %}
    </ul>
  4. 如何使用这个方法呢?

    # 在你需要的网页上将这个文件导入tag.py 文件是你写函数的文件
    {% load tag %} # 将在你需要的地方写
    {% inclusion %}
    # inclusion是你写的函数

静态文件配置

  1. 在页面中需要加入一些css,js,图片等文件,如何在django中写这些文件的路径呢?

    #首先在你的项目文件里建立一个statics文件夹,在这个文件夹下在增加你需要的文件夹,比如css,js文件夹,在这些文件夹下写入对应的css,js文件,
  2. 其次就是在django的settings配置文件进行文件配置

    #关键的概念:Django中,静态资源的存放通过设置 STATIC_URL, STATICFILES_DIRS 来设置,一般STATIC_URL设置为:/static/    ----  这个名字就叫做静态文件路径别名,可以改变
    
    #STATIC_URL='/static/', 这个static 是在Django 具体APP下建立的statics目录,用来存放静态资源。而STATICFILES_DIRS一般用来设置通用的静态资源,例如:
    
    STATICFILES_DIRS=[os.path.join(BASE_DIR, "statics"),]
  3. 在html文件中如何使用

    <link rel="stylesheet" href="/static/css/index.css">
    在插入css文件时只需要写你的路径别名,在加上css文件夹名和文件名

最新文章

  1. java 深入技术二(Collection)
  2. MUI(3)
  3. 形象化的spring 依赖注入原理
  4. NPOI设置Excel保护
  5. 数据库优化和SQL操作的相关题目
  6. C++ Primer 5 CH7 类
  7. PHP-无限级分类(迭代法创建)
  8. 搭建Python自动化测试环境+元素定位
  9. Nginx下配置网站ssl实现https访问
  10. idea:打包jar(原文by曲高终和寡)
  11. Unity 3D-AR开发-Vuforia教程手册
  12. PAT 乙级 1066 图像过滤(15) C++版
  13. Async异步编程入门示例
  14. js生成二维码实例
  15. git rm删除
  16. [转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
  17. Nginx变量.md
  18. 【mysql】排序方操作50题练习及其答案
  19. JetBrains激活 PyCharm | IntelliJ IDEA | CLion | WebStorm...
  20. 六.jQuery源码分析之jQuery原型属性和方法

热门文章

  1. MySQL(二):快速理解MySQL数据库索引
  2. CVE-2019-0708——RDP漏洞利用
  3. 中小学生的噩梦:怎样用Python检测抄袭行为?广大中小学生们的美梦就此结束
  4. Python之word文档模板套用 - 真正的模板格式套用
  5. vuejs2.0使用Sortable.js实现的拖拽功能( 转)
  6. HADOOP单机版配置
  7. 用漫画的形式展现——什么是web
  8. Linux系统性能排查
  9. tp where使用数组条件,如何设置or,and
  10. Vue 组件内滚动条 滚到到底部