博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django模板语言进阶
阅读量:4914 次
发布时间:2019-06-11

本文共 2416 字,大约阅读时间需要 8 分钟。

一、母板1、什么情况下使用母版    当多个页面的大部分内容都一样的时候,我们可以把相同的部分提取出来,放到一个单独的母版HTML文件中    然后在母版中定义需要被替换的block例如:母板页面  
母板HTML {
% block page-css %} {
% endblock %}

母板内容

{
% block page-main %}{
% endblock %}

JS

{
% block page-js %}{
% endblock %}2、在子页面继承母板(相当于把母板所有代码复制过来){
% extends '母板名.html' %}3、块(block)通过在母板中使用{
% block xxx %}来定义"块"。在子页面中通过定义母板中的block名来对应替换母板中相应的内容注意:在母板中block只是定义,里面并没有内容的,子页面才填充内容{
% block page-main %}

子页面的内容

{
% endblock %}{
% block page-js %}

子页面的js

{
% endblock %}{
% block page-css %}

子页面的css

{
% endblock %}二、组件1.、什么时候用组件? 页面上相对独立的某个部分可以单独拿出来放到一个单独的html文件中2.、如何使用 1. {% include '组件.html' %}三、静态文件相关1. 为什么要使用 把静态文件的路径改成动态拼接的,避免在HTML页面中硬编码静态文件的导入路径2. 如何使用先导入static模块:{
% load static %} 两种使用方法: 1.
2.
3、自定义simple_tag和自定义filter类似,只不过接收更灵活的参数。1. 自定义simple_tag的步骤 1. 在app下面新建一个python package名字叫templatetags 2. 在上一步的python package中新建一个py文件(my_extends.py) 3. 在py文件中写一个函数,实现自定义的simple_tag功能 4. 告诉Django我现在多了一个自定义的tag 5.例子 from django import template from django.conf import settings # 生成一个注册对象 register = template.Library() # 自定义一个拼接静态文件路径的tag函数 @register.simple_tag(name='myst') def my_static(s): # 拿到settings.py中的STATIC_URL的值 s1 = settings.STATIC_URL # 进行字符串拼接 ret = s1 + s # 返回 return ret 2. 使用自定义的tag 1. 在HTML文件中导入刚才创建的py文件 {
% load my_extends %} 2. 重启Django项目 3. 按照普通的tag调用自定义的函数
4、自定义inclusion_tag多用于返回html代码片段跟上面自定义的步骤一样,只是代码有点不同inclusion_tag相当于定义了一个局部的HTML,然后别的页面可以引用这段HTML代码例如:my_extends.py@register.inclusion_tag(filename='p.html', name='pp') def my_p(num): data = [i for i in range(1, num+1)] return {
'data': data} p.html{
% for i in data %} {
{ i }}
{
% endfor %} test.html
test{
% load my_extend %}{
% pp 10 %}解释:filename是inclusion_tag指定的页面,接收inclusion_tag函数返回值,name是调用时的tags名,调用的参数是从my_p接收,返回的内容是filename指定的页面的内容。也就是说,上面的代码,最终展示的页面是test.html,{
% load my_extend %}{
% pp 10 %}上面两句话是导入了my_extend自定义的tagspp是tags的具体一个方法,10是参数,pp会把10这个参数传给my_p,然后my_p再传给p.html,最后在test,html页面显示p.html的那部分代码,相当于把p.html的代码嵌入到了test,html里面展示出来

 

转载于:https://www.cnblogs.com/yidashi110/p/10091987.html

你可能感兴趣的文章
Slim 微型框架的使用
查看>>
高程5.4 RegExp类型
查看>>
CMD复制文件夹
查看>>
尽力而为
查看>>
Java技术预备作业
查看>>
阿虎烧烤的新感悟-O2O你真的会玩吗?
查看>>
Oracle10g闪回恢复区详细解析(转载)
查看>>
手把手教你从零认识webpack4.0
查看>>
(译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分
查看>>
[小米OJ] 3. 大数相减
查看>>
课后作业2:编写一个文件加解密程序,通过命令行完成加解密工作
查看>>
js 值类型和引用类型
查看>>
java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
查看>>
java相关。关于jsp中使用el表达式的格式,谢谢!
查看>>
GetDlgItem的用法小结
查看>>
java带包编译
查看>>
树状数组详解(重拾笔记)
查看>>
javascript深入理解js闭包
查看>>
PLSQL
查看>>
ASP.NET Core 应用程序Startup类介绍
查看>>