转换器2:ThinkPhp模板转Django模板

前天写了个《ThinkPhp模板转Flask模板》

居然被同事鄙视了,原因是他用Django,我用Flask,为了避免被他继续安利Django的强大。我决定写一个Django模板转换器。

为了复用代码,得用继承,我把原代码分成三段,一下子获得了三个转换器。

class ConverterTemplateEncoding(object):
    separators = [('<', '>')]

    def __init__(self):
        self.match = {'opening': 0, 'closing': 0, 'extra': 0, 'script': '', 'content': '', 'cache': '', 'separator': ()}

    def convert_tag(self, tag, extra=''):
        return tag
...

class ConverterThinkPhp2Jinja(ConverterTemplateEncoding):
    separators = [('{', '}'), ('__', '__'), ('<', '>'), ('<?', '?>')]


class ConverterThinkPhp2Django(ConverterThinkPhp2Jinja):
    pass

我没有说的是Flask模板与Django模板其实相差无几,至少我没有实现。哈。

if __name__ == '__main__':
    ConverterThinkPhp2Jinja().convert_templates('src', 'dst')

 

源码:converterV0.2.zip

 

posted @ 2017-03-04 13:26  windfic  阅读(913)  评论(0编辑  收藏  举报