`

django模版中带参数调用任意函数的方法

 
阅读更多
原文地址:http://www.sharejs.com/codes/python/7616


django模版中带参数调用任意函数的方法


#template_filters.py

@register.filter
def template_args(instance, arg):
    """
    stores the arguments in a separate instance attribute
    """
    if not hasattr(instance, "_TemplateArgs"):
        setattr(instance, "_TemplateArgs", [])
    instance._TemplateArgs.append(arg)
    return instance

@register.filter
def template_method(instance, method):
    """
    retrieves the arguments if any and calls the method
    """
    method = getattr(instance, method)
    if hasattr(instance, "_TemplateArgs"):
        to_return = method(*instance._TemplateArgs)
        delattr(instance, '_TemplateArgs')
        return to_return
    return method()

# 在模版里面按照下面的方法调用
{{ instance|template_args:"value1"|template_args:"value2"|template_args:"value3"|template_method:"test_template_call" }}

# 输出结果
value1, value2, value3
#该代码片段来自于: http://www.sharejs.com/codes/python/7616
分享到:
评论

相关推荐

    如何优雅地改进Django中的模板碎片缓存详解

    在这个例子中,我们定义了一个`cache_data`标签,它接受一个函数名和任意参数,然后在渲染时调用这个函数并缓存其结果。这样,我们可以在模板中直接使用`{% cache_data get_hot_course %}`,而不需要在视图中传递...

    3. Django 初探路由

    Django的路由系统允许开发者定义URL模式,将这些模式与特定的视图函数关联,当用户访问匹配的URL时,对应的视图函数会被调用以处理请求。这被称为URL到视图的映射。 ### 2. 配置URLconf Django项目的`urls.py`文件...

    Django 模板 进阶

    首先,配置Django模板涉及在项目的settings.py文件中设置`TEMPLATES`配置项。你需要在`DIRS`中指定一个或多个模板目录,例如将所有模板存放在`BASE_DIR`下的`templates`目录中。这样,Django会在这个目录中查找模板...

    完整版Django技术介绍.docx

    如果找到则会调用相关联的视图函数,并把 HttpRequest 对象作为第一个参数(通常是 request)。 4. 最后该视图函数负责返回一个 HttpResponse 对象。 Django 的安装部署需要: 1. 安装 Python 2.6。 2. 安装 ...

    Python与Web开发:Django

    在Python中,类是对象的模板,定义了对象的属性和方法。 #### 结论 Django框架凭借其强大的功能集和易用性,在Web开发领域占据着重要的地位。对于想要快速构建安全、高效Web应用的开发者来说,掌握Python基础及...

    基于Python的django 正则 个人笔记

    - Template:模板负责呈现HTML页面,可以使用Django模板语言(DTL)进行动态内容填充。 2. **URL配置**:Django使用URLconf(URL配置)系统将URL映射到视图函数,通过`urls.py`文件实现。 3. **ORM**:Django的...

    django-tutorial

    模板是HTML文件,其中包含了Django模板语言(DTL)的标记,用于动态生成内容。DTL允许你插入变量、控制结构(如循环和条件语句)以及调用模板标签和过滤器。 6. **URL配置** Django的URL配置系统允许你将URL模式...

    Byte Of Python

    - 参数传递:Python采用动态类型,参数可以是任意类型,支持默认值和可变参数。 - 匿名函数:lambda表达式用于创建简单的、一次性使用的函数。 4. **模块与包** - 导入模块:import关键字用于引入Python模块,...

    python入门到高级全栈工程师培训 第3期 附课件代码

    12 函数闭包带参数装饰器 第21章 01 查询功能 02 修改功能 03 程序的解耦 04 module模块和包的介绍 05 模块的执行以及__name__ 06 关于模块的介绍 07 time时间模块 08 random模块 第22章 01 模块的补充 02 sys...

    django框架cookie和session用法实例详解

    在另一个视图函数中,我们可以检查是否存在`is_login`这个Cookie,从而实现用户登录状态的验证。 ```python def index(request): ret = request.COOKIES.get("is_login") if not ret: return redirect("/login/...

    Python入门教程

    - **默认参数值**:为函数参数指定默认值,使函数调用时某些参数可省略。 - **关键参数**:调用函数时,通过名称指定参数值的方式。 - **return语句**:用于从函数返回值。 #### 8. 模块 - **sys模块**:提供了许多...

    python快速入门

    - **函数参数**:函数可以接受任意数量的位置参数和关键字参数。 - **局部变量**:在函数内部定义的变量只能在该函数内部访问。 - **返回值**:使用`return`关键字从函数返回值。 - **DocStrings**:函数的第一行...

    python学习导航.txt

    - 装饰器可以应用于函数和方法,以及带参数的函数。 5. 文件操作与输入输出 文件读写 - 打开、读取、写入文件是基本的文件操作,涉及open()函数以及read()、write()、readline()等方法。 - 文件模式指定了文件的...

    python web框架

    例如,`web.config.route = ("/hello/:name", "hello")`将匹配以"/hello/"开头且后面跟着任意字符的URL,并将这部分动态参数传给对应的处理器。 2. **控制器**:在webpy中,控制器负责接收HTTP请求并调用适当的业务...

    rtcsig:这是一个 Django 应用程序,用于处理 WebRTC 对等互连的会话交换

    3. `app_name/`:Django应用目录,包含`models.py`(数据模型)、`views.py`(视图函数)、`urls.py`(URL配置)和`templates/`(HTML模板)等。 4. `static/`和`media/`:分别存放静态资源(如CSS和JavaScript)和...

    【个人总结系列-9】Python编程学习总结.rar

    11. **Python在Web开发中的应用**:Python的Web框架如Flask和Django,使得构建Web应用变得简单高效,涵盖了MVC设计模式、路由、模板渲染和数据库交互等核心功能。 12. **Python脚本自动化**:Python可以编写脚本...

    pycharm快捷键

    **Ctrl+P** - 参数信息:在调用方法时,此快捷键可以帮助您查看方法所需的参数及其类型。 **Ctrl+Q** - 快速查看文档:如果您想要查看某个方法、类或属性的官方文档,只需将光标置于其上并按下此快捷键即可。 **F1...

Global site tag (gtag.js) - Google Analytics