zoukankan      html  css  js  c++  java
  • Django里面的自定义tag和filter

    Django的文档里面有这么一句

    
    
    The app that contains the custom tags must be in INSTALLED_APPS 
    in order for the {% load %} tag to work. 
    
    
    

    当第一次load一个template的时候,调用源码

    def get_templatetags_modules():
        """
        Return the list of all available template tag modules.
    
        Caches the result for faster access.
        """
        global templatetags_modules
        if not templatetags_modules:
            _templatetags_modules = []
            # Populate list once per process. Mutate the local list first, and
            # then assign it to the global name to ensure there are no cases where
            # two threads try to populate it simultaneously.
            for app_module in ['django'] + list(settings.INSTALLED_APPS):
                try:
                    templatetag_module = '%s.templatetags' % app_module
                    import_module(templatetag_module)
                    _templatetags_modules.append(templatetag_module)
                except ImportError:
                    continue
            templatetags_modules = _templatetags_modules
        return templatetags_modules


    Load类型的Node 输出的定义

    class LoadNode(Node):
        def render(self, context):
            return ''

    可见他是一个空白字符串,也就是在输出的html中"抹掉"了


    example

    <html>
    <head>
    	{% load blog_extras %}
    	Hi my double value is <b>{{myvalue|mycut}}</b>
    </head>
    </html>


    will be tokenized as



    Then the block token will be set to LoadNode, var token to Variable Node  in my case, done byParser

    最后把每一个node render出来

  • 相关阅读:
    查看真机的系统版本sdk
    查看真机的系统中sdk的版本
    用Appium去操作移动设备上的chrome
    adb devices 显示error
    创建一个web Test Plan
    Maven2的配置文件settings.xml(转)
    解决HierarchyViewer不能连接真机的问题
    利用Hudson持续集成来执行Android自动化测试(转)
    eclipse中修改maven仓储
    Appium的理念
  • 原文地址:https://www.cnblogs.com/james1207/p/3323198.html
Copyright © 2011-2022 走看看