【问题标题】:Python HTML generatorPython HTML 生成器
【发布时间】:2010-12-05 15:07:05
【问题描述】:

我正在寻找一个易于实现的 Python 的 HTML 生成器。我找到了HTML.py,但是没有办法为表格添加CSS元素(id,class)。

【问题讨论】:

    标签: python html


    【解决方案1】:

    Dominate 是一个 HTML 生成库,可让您轻松创建标签。在dominant中,python的保留字以下划线为前缀,所以看起来是这样的:

    from dominate.tags import *
    t = div(table(_id="the_table"), _class="tbl")
    print(t)
    
    
    <div class="tbl">
      <table id="the_table"></table>
    </div>
    

    免责声明:我是主宰的作者

    【讨论】:

      【解决方案2】:

      如果您想要程序化生成而不是模板化,Karrigell 的HTMLTags 模块是一种可能;它可以包括例如class 属性(这将是 Python 中的保留字)通过大写其首字母的技巧,即引用我刚刚给出的文档 URL:

      同名的属性 Python 关键字(类、类型)必须是 大写:

      print DIV('bar', Class="title")  ==>  <DIV class="title">bar</DIV>
      

      【讨论】:

        【解决方案3】:

        HTML 生成通常使用 Python 可用的无数 HTML 模板语言中的一种来完成。我个人喜欢Templess,但Genshi 可能是最受欢迎的。它们的数量是无限的,有一个list 很可能是不完整的。

        否则,您可能想要使用lxml,您可以在其中以更加编程的 XML 方式生成它。虽然我很难看到它的好处。

        【讨论】:

        • 顺便说一句:Genshi 是 Trac 使用的模板引擎。
        【解决方案4】:

        Robin Friedrich 的著名 HTMLGen 很难找到,但仍然可用 here(日期为 2001 年,但从那时起 HTML 并没有太大变化 ;-)。还有xist。当然,正如 Lennart 所指出的,如今的 HTML 生成通常最好使用模板系统,例如 JinjaMako

        【讨论】:

        • 现在? Python 模板至少从 DTML,1997 年就已经存在了。:) ZPT 自 2001 年以来更好。:) [只是挑剔]
        【解决方案5】:

        这是我编写的一个超简单的 HTML 生成器。我在构建时使用它来生成 html。如果一个正在生成 html 页面运行时,那么有更好的选项可用

        这是链接

        http://pypi.python.org/pypi/sphc

        还有一个简单的例子

        >> import sphw
        >> tf = sphw.TagFactory()
        >>> div = tf.DIV("Some Text here.", Class='content', id='foo')
        >>> print(div)
        
        <DIV Class="content", id="foo">Some Text here.</DIV>
        

        【讨论】:

          【解决方案6】:

          实际上,您可以在 HTML.py (http://www.decalage.info/python/html) 中为对象添加任何属性,例如 id 和 class。

          attribs 是 Table、TableRow 和 TableCell 类的可选参数。它是您要设置的附加属性的字典。例如,下面的代码为一个表设置了 id 和 class:

          import HTML
          table_data = [
                  ['Last name',   'First name',   'Age'],
                  ['Smith',       'John',         30],
                  ['Carpenter',   'Jack',         47],
                  ['Johnson',     'Paul',         62],
              ]
          htmlcode = HTML.table(table_data, 
              attribs={'id':'table1', 'class':'myclass'})
          print htmlcode
          

          相同的参数可用于 TableRow 和 TableCell 对象来格式化行和单元格。列尚不存在,但如果需要应该很容易实现。

          【讨论】:

            【解决方案7】:

            好的,这是另一个 html 生成器,或者我更愿意将其视为编译器。

            https://pypi.python.org/pypi/python-html-compiler

            这是一组可用于定义标签和属性的基类。因此,标记类具有属性和子级。子项本身就是具有属性和子项等的标记类。您还可以设置从根类开始的参数并处理各个分支。

            这将允许您定义您想要的所有标签类,从而能够创建自定义类并实现您想要的任何标签或属性。

            刚开始,所以如果有人想测试:)

            【讨论】:

              【解决方案8】:

              HTML 生成或任何文本生成,jinja 是一个强大的模板引擎。

              【讨论】:

                【解决方案9】:

                您可能对某些 Python HAML 实现感兴趣。 HAML 就像 HTML 速记,只需几分钟即可学会。还有一个叫做 SASS 的 CSS 版本。

                http://haml.hamptoncatlin.com/

                Is there a HAML implementation for use with Python and Django”更多地谈到了 Python 和 HAML。

                我在使用 Ruby 编程时尽可能多地使用 HAML。而且,作为脚注,还有一些工作正在为 Perl 获取模块,这些模块与漂亮的 MVC Mojolicious 一起使用:

                http://metacpan.org/pod/Text::Haml

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-10-02
                  • 1970-01-01
                  • 2011-04-17
                  • 1970-01-01
                  • 2023-03-09
                  • 2012-04-29
                  • 2012-03-25
                  相关资源
                  最近更新 更多