母版
母版 什么情况下使用母版? 当多个页面的大部分内容都一样的时候,我们可以把相同的部分提取出来,放到一个单独的母版文件中 使用 在母版中定义需要被替换的block 在子页面中 先继承母版 --> {% extends '母版.html' %} 定义block {% block page-main %} {% endblock page-main %} 通常的用法 {% bloack page-css %} {% endblock %} {% block page-js %} {% endblock %} 组件 什么时候用组件? 页面上相对独立的某个部分可以单独拿出来放到一个单独的html文件中 如何使用? {% inclue '组件.html' %} 静态文件相关 为什么要使用? 把静态文件的路径改成动态拼接的,避免在HTML页面中硬编码静态文件的导入路径 如何使用? {% load static %} {% static 'css/xx.css'%} {% load get_static_prefix %} {% get_static_prefix %}css/xx.css
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Title</title> {% block page-css %} {% endblock %} </head> <body> <h1>这是母板的标题</h1> {% block page-main %} {% endblock %} <h1>母板底部内容</h1> {% block page-js %} {% endblock %} </body> </html>
常会在母板中定义页面专用的CSS块和JS块,方便子页面替换。
自定义simpletag 和自定义filter类似,只不过接收更灵活的参数。 定义注册simple tag @register.simple_tag(name="plus") def plus(a, b, c): return "{} + {} + {}".format(a, b, c) 使用自定义simple tag {% load app01_demo %} {# simple tag #} {% plus "1" "2" "abc" %} inclusion_tag 多用于返回html代码片段 示例: #templatetags/my_inclusion.py from django import template register = template.Library() @register.inclusion_tag('result.html') def show_results(n): n = 1 if n < 1 else int(n) data = ["第{}项".format(i) for i in range(1, n+1)] return {"data": data} #templates/snippets/result.html <ul> {% for choice in data %} <li>{{ choice }}</li> {% endfor %} </ul> #templates/index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>inclusion_tag test</title> </head> <body> {% load inclusion_tag_test %} {% show_results 10 %} </body> </html>
清风深知杨柳意,啤酒龙虾难相聚。

浙公网安备 33010602011771号