yattag, 以可以读简洁和 Pythonic 方式生成HTML或者XML的python 库

分享于 

3分钟阅读

GitHub

  繁體 雙語
Python library to generate HTML or XML in a readable, concise and pythonic way.
  • 源代码名称:yattag
  • 源代码网址:http://www.github.com/leforestier/yattag
  • yattag源代码文档
  • yattag源代码下载
  • Git URL:
    git://www.github.com/leforestier/yattag.git
    Git Clone代码到本地:
    git clone http://www.github.com/leforestier/yattag
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/leforestier/yattag
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    当你可以非常易读的方式使用 python 生成HTML或者XML文档时,为什么使用模板引擎?

    ( 关于 yattag.org的完整教程)

    基本示例

    嵌套的html标记,无需关闭标记。

    from yattag import Doc
    doc, tag, text = Doc().tagtext()with tag('html'):
     with tag('body', id='hello'):
     with tag('h1'):
     text('Hello world!')print(doc.getvalue())

    Html表单呈现

    Yattag可以使用默认值和错误消息填充你的HTML表单。 传递默认值的defaults dictionnary,并向 Doc 构造函数传递错误消息的errors dictionnary。 然后,在生成文档时使用特殊的inputtextareaselectoption 方法。

    具有默认值的示例

    from yattag import Doc
    doc, tag, text = Doc(
     defaults= {'ingredient': ['chocolate', 'coffee']}
    ).tagtext()with tag('form', action=""):
     with tag('label'):
     text("Select one or more ingredients")
     with doc.select(name='ingredient', multiple="multiple"):
     for value, description in (
     ("chocolate", "Dark chocolate"),
     ("almonds", "Roasted almonds"),
     ("honey", "Acacia honey"),
     ("coffee", "Ethiopian coffee")
     ):
     with doc.option(value= value):
     text(description)
     doc.stag('input', type="submit", value="Validate")print(doc.getvalue())

    具有默认值和错误的示例

    from yattag import Doc
    doc, tag, text = Doc(
     defaults= {
     'title': 'Untitled',
     'contact_message': 'You just won the lottery!' },
     errors= {
     'contact_message': 'Your message looks like spam.' }
    ).tagtext()with tag('h1'):
     text('Contact form')with tag('form', action=""):
     doc.input(name='title', type='text')
     with doc.textarea(name='contact_message'):
     pass doc.stag('input', type='submit', value='Send my message')print(doc.getvalue())

    关于 yattag.org的完整教程

    GitHub repo: https://github.com/leforestier/yattag