9.template零碎知识点

1.母版和继承

当我们多个页面大部分代码相同时,只有少数特定的,我们可以建造母版并继承来,写自定义的block块来减少代码量

比如我们现在有这样一个html,写其他网页时都想用这个模板

base.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% blcok title %}{% endblock %}</title>
</head>
<body>
<a href="{% block add %}{% endblock %}">增加</a>
{% block main %}
{% endblock %}
</body>
</html>

使用时:
{% extends 'base.html'' %}
{% block title %}
...
{% endblock %}
{% block add %}
...
{% endblock %}
{% block main %}
...
{% endblock %}

总结:
1.{% extends ‘母版文件名’ %} 继承母版,必须写在第一行,文件名必须为字符串,否则会当成变量去找
2.{% blocak xx %} … {% endblock %} 写子模板自定义内容,一定写在block中,写在外边没有用
3.在母版中多预留几个block块,如css和js,将来可能会用到

2.静态文件引入相关

我们引入静态文件时以别名开头,假如有一天有人手欠把别名给改了,那么所有引入静态文件的文件都完了,得全部改一遍,但是可以通过static标签来解决这个问题

{% load static %}
1.{% static '文件相对路径' %}  
2.{% get_static_prefix %}文件相对路径。get_static_profix会自动帮我们获取别名

eg:
<link rel="stylesheet" href="/static/plugins/font-awesome-4.7.0/css/font-awesome.css">
可以改为:
<link rel="stylesheet" href="{% static'plugins/font-awesome-4.7.0/css/font-awesome.css' %}">
<link rel="stylesheet" href="{% get_static_prefix %}plugins/font-awesome-4.7.0/css/font-awesome.css">

3.simple_tag

可以将simple_tag看成一个参数不限制的过滤器
定义自定义fliter步骤相同,只不过装饰器为**@register.simple_tag**
使用也与自定义filter相似,但是不加管道符(|)
simple_tag的好处:参数没有限制

@register.simple_tag
def seer(*args,**kwargs):
    return "_".join(args)+"*".join(kwargs.values())
    
{% load my_filter %}
{% seer "1" "2" "3" k1="4" k2="5" %}
    
发布了62 篇原创文章 · 获赞 13 · 访问量 2965

猜你喜欢

转载自blog.csdn.net/Yanghongru/article/details/105464185