赞
踩
目录
我是在Item_2这个应用目录下进行的操作
准备工作都做好了,看看能否跑成功。
成功了,开始我们的操作。
参考:如何编写自定义的模板标签和过滤器 | Django 文档 | Django (djangoproject.com)
首先在我们的应用目录Item_2下面的与migrations同级新建一个名为templatetags的软件包(名字别写错了),在templatetags里面创建一个.py文件,在这个文件下写自定义的过滤器标签。
在custom.py文件中我们写入:
这样我们就自定义好了我们想要的过滤器,接下了,我们如何使用它
在Item_2的目录下找到view.py,与url.py文件,进行如下操作,
在自建的模板目录total_templates下建立一个Item_2的目录,在此目录下新建一个.html的文件,为了方便记忆我的是low.html
运行,在网页中我们可以看出:Are YOU ready----被显示为are you ready。
在custom_1.py文件在定义带参过滤器:
在low.html中使用:
在views.py文件中添加参数value:
value不存在时,刷新页面:
value存在时,刷新页面:
在custom_1.py文件在定义标签:
在views.py中添加参数A、B、C
在low.html在使用标签
刷新页面:
还可以将一个页面的内容渲染到另一个页面上
先在total_templates/item_2/下与low.html同级新建一个.html文件,我的是uuuu.html
在custom_1.py文件下声明一个inclusion_tag标签
在uuuu.html文件下写入:
在low.html文件下写入:
刷新页面则可看到:
则将uuuu.html文件的内容引入到low.html文件中了。
在views.py中先定义一个函数:
def mode_test(request): return render(request,'item_2/box.html')
在total_templates/item_2/下与low.html同级新建一个.html文件,我的是box.html
在urls.py文件在写入mode_test的路径名
在box.html中写入你想要呈现的结果
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>box的页面</title>
- <style>
- .top{
- background: hotpink;
- height: 20px;
- }
- .CONTENT{
- display: flex;
- }
- .content_1{
- background: sandybrown;
- height: 1000px;
- width: 80%;
- }
- .content_2{
- background: lightblue;
- height: 1000px;
- width: 20%;
- }
-
- </style>
- </head>
- <body>
- <div class="top">我是页面</div>
- <div class="CONTENT">
- <div class="content_1">我是内容1</div>
- <div class="content_2">我是内容2</div>
- </div>
- </body>
- </html>
在网页面中显示:
我们首先要在total_templates目录下创建一个base.html,将box.html文件下的内容复制到base.html中,将<title>box的页面</title>改为<title>base的页面</title>,将box.html文件里面的内容清空,我们要实现的效果是:在不写代码的情况下,在box.html中能呈现base.html的内容(box页面继承base页面)现在刷新页面:空白什么都没有
在box.html文件在使用模板语法
在里面写入{% extends 'base.html' %} #extends后面接的是 从那个的地方引入的文件
刷新页面则可看到,box页面被box页面展现出来了。
现在要求box页面展现出来的base页面里面的内容有变换,但是不改变base页面。
我们采用挖坑填坑的方式
在base.html中,想要修改那一段,就用 block、endblock将其包围起来,然后在将其复制到box.html文件中即可。
eg:将base.html文件中的top中的”我是页面“改为”我现在是box页面了“
base.html文件:(挖坑)
box.html文件:(填坑)
刷新页面:
在继承的过程中,我们既需要自己的有想要父类的,可以通过block.super来完成
eg:我们想要在“我是内容1”的下面加上“我想要刷抖音”
先在base.html中挖坑
在box.html中填坑
刷新页面:
include也是可以将一个页面的内容渲染到另一个页面中,但是要在模块里面(坑里面)才能实现
在total_templates目录下面在新建一个.html文件,我的叫include_tes.html文件
在里面写入:<h1>你好呀,结束了,我要睡觉了</h1>
在base.html中写入
在box.html中写入
刷新页面:
这样include_tes的页面中的内容就会在box页面中展示出来了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。