自定义标签:
一、simple_tag,不能在摸板中使用 if 判断
from django import template
register = template.Library()
@register.simple_tag
def jiafa(a1,a2): --可以多个参数 (a1,a2,a3)
    return  a1 + a2
 
 
二、filter,可以使用if判断,最多只能有两个参数,一个是变量值,一个是选项值
<wiz_code_mirror>
 
 
 
 
 
 
 
@register.filter
def jiafadb(a1,a2): --不能多个参数只能在摸板传入拼接的字符串 然后分割
    return a1+a2
 
 
三、引用方式

 
 
{% jiafa 2 5 %} --simple_tag
{{ 'dabao'|jiafadb:'woshishui'}} --filter  
{{ 'dabao'|jiafadb:'woshishui,woshihsui'}} --传拼接字符串,在后台分割
 
 
mark_safe和format_html:
使用原因:
django从view向template传递HTML字符串的时候,django默认不渲染此HTML,原因是为了防止这段字符串里面有恶意攻击的代码。
mark_safe这个函数就是确认这段函数是安全的,不是恶意攻击的。
 
view层代码:
    from django.utils.safestring import mark_safe
    def index_view(request):
    pageHtml = mark_safe("<a href='#'>首页</a>")
    ret = {
        'pageHtml':pageHtml
    }
    return render(request,'list.html',ret)
页面直接调用即可:
    在list.html页面中,
    <body>
    {{ pageHtml }}
    </body>
 
 

format_html和mark_safe非常类似,本质还是调用mark_safe函数,不同在于传参方式,mark_safe直接传递完整的html字符串;

而format_html需要使用{}占位符:


<wiz_code_mirror>
 
 
 
 
 
 
 
format_html('<span style="color:{};">{}</span>', color_code, obj.approval)
 
 
关于静态文件:
<wiz_code_mirror>
 
 
 
 
 
 
 
            1.什么是静态文件
                在Django中,不被解释器所动态解析的文件就是静态文件
            2.Django中静态文件的处理
                在settings.py中设置有关静态文件的信息:
                1.设置静态文件的访问路径
                    在浏览器中通过哪个地址能够找到静态文件
                    STATIC_URL = '/static/'
                    如果访问路径是 http://localhost:8000/static/...,那么就到静态文件存储路径中找文件而不走路由(urls.py)
                2.设置静态文件的存储路径
                    指定静态文件存储在服务器上的哪个位置处
                    STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),)
                    BASE_DIR :当前项目所在的绝对的路径
                    静态文件目录的存放位置:
                        1.在项目的根目录处创建一个 static 目录,用于保存静态文件们
                        2.每个应用中也可以创建一个 static 目录,用于保存静态文件们
            3.访问静态文件
                1.直接使用静态文件访问路径进行访问
                    http://localhost:8000/static/..
                    ex:
                    <img src="/static/images/a.jpg">
                    <img src="http://localhost:8000/static/images/a.jpg">
                2.使用 {% static %} 访问静态资源
                    {% static %} 表示的就是静态资源的访问路径
                    1.在模板的最顶层增加
                        {% load static %}
                    2.在使用静态资源时
                        <img src="{% static 'images/a.jpg'%}">
 
 
<wiz_code_mirror>
 
 
 
 
 
 
 
示例:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <!-- 显示静态资源文件 -->
  <p>
    <img src="/static/images/shuaige.jpg">
  </p>
  <p>
    <img src="http://localhost:8000/static/images/shuaige.jpg">
  </p>
  <p>
    <img src="{% static 'images/shuaige.jpg' %}">
  </p>
</body>
</html>
 
 
使用摸板语法时注意:变量们必须要封装到字典中才能传递给模板
 
 
 
 
 
01-01 23:10
查看更多