前天写了个《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')