码迷,mamicode.com
首页 > 编程语言 > 详细

pythonのsimple_tag

时间:2018-10-24 15:59:08      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:ssi   gis   led   code   info   col   ati   bubuko   添加   

当我们需要在页面种直接调用py文件中的某些方法时,我们就要用到simple_tag。具体步骤如下:

1.在某个app下创建templatetags文件夹,切记该名称是不可以改变的。

2.在该文件夹下创建任意的.py文件,如test.py,test.py内容如下:

 1 from django import template
 2 
 3 from django.utils.safestring import mark_safe
 4 # register名称不可以改变
 5 register = template.Library()
 6 
 7 @register.simple_tag
 8 
 9 def myCheck(param1,param2):
10     return param1 + param2

3.在setting中注册该app,如果是系统生成时就添加的,则不需要进行app注册

1 INSTALLED_APPS = [
2     django.contrib.admin,
3     django.contrib.auth,
4     django.contrib.contenttypes,
5     django.contrib.sessions,
6     django.contrib.messages,
7     django.contrib.staticfiles,
8     app01.apps.App01Config, # 我这里是创建系统时,就直接创建了相关的app01
9 ]

4.在页面中引入(1)顶部引入{%load  test%}  test是我们在templatetags文件夹下创建的.py文件。(2)重点看第10行代码 {% 函数名 arg1 arg2 %}对应的是.py文件中相应函数及其所需要传入的相关参数。并且参数中间是可以添加空格的。

 1 {% load  test%}
 2 <!DOCTYPE html>
 3 <html lang="en">
 4 <head>
 5     <meta charset="UTF-8">
 6     <title>Title</title>
 7 </head>
 8 <body>
 9      <h1>{{ name }}</h1>
10      <h1>{% myCheck  3 2  %}</h1>
11 </body>
12 </html>

 技术分享图片

1 @register.filter
2 def myCheck1(param1,param2):
3     return param1 + param2
 <h1>{{ "name:"|myCheck1:"Jerry" }}</h1>

filter和simple_tag优缺点:

1.前者参数最多能有两个,并且参数前边不能有空格,如果前者需要添加多个参数只能<h1>{{ "参数1:"|myCheck1:"参数2" }}</h1>,然后在后台split进行分割。而后者可以有多个参数,并且参数之间可以有空格

2.前者还可以写在页面中的{%if  "参数1:"|myCheck1:"参数2" %}{%endif %}中,这个是后者不可以替代的。

pythonのsimple_tag

标签:ssi   gis   led   code   info   col   ati   bubuko   添加   

原文地址:https://www.cnblogs.com/pengpengzhang/p/9842609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!