Skip to main content
Help us improve Python packaging – donate today!

Simple HTML generator for Python

Project Description

https://travis-ci.org/cenkalti/pyhtml.svg?branch=master https://coveralls.io/repos/github/cenkalti/pyhtml/badge.svg?branch=master

PyHTML is a simple HTML generation library for Python.

Inspired by Flask-HTMLBuilder and this gist.

Features

  • Compatible with Python 2 and 3
  • Outputs beautifully indented code
  • Some tags have sensible defaults
  • Have Blocks for filling them later

Installing

$ pip install pyhtml

Documentation

See the docstring on pyhtml.py file.

Example

from pyhtml import *


def f_links(ctx):
    for title, page in [('Home', '/home.html'),
                        ('Login', '/login.html')]:
        yield li(a(href=page)(title))


t = html(
    head(
        title('Awesome website'),
        script(src="http://path.to/script.js")
    ),
    body(
        header(
            img(src='/path/to/logo.png'),
            nav(
                ul(f_links)
            )
        ),
        div(
            lambda ctx: "Hello %s" % ctx.get('user', 'Guest'),
            'Content here'
        ),
        footer(
            hr,
            'Copyright 2013'
        )
    )
)

print t.render(user='Cenk')

The above code is rendered as:

<!DOCTYPE html>
<html>
  <head>
    <title>
      Awesome website
    </title>
    <script src="http://path.to/script.js" type="text/javascript"></script>
  </head>
  <body>
    <header>
      <img src="/path/to/logo.png"/>
      <nav>
        <ul>
          <li>
            <a href="/home.html">
              Home
            </a>
          </li>
          <li>
            <a href="/login.html">
              Login
            </a>
          </li>
        </ul>
      </nav>
    </header>
    <div>
      Hello Cenk
      Content here
    </div>
    <footer>
      <hr/>
      Copyright 2013
    </footer>
  </body>
</html>

Release history Release notifications

This version
History Node

1.3.1

History Node

1.3.0

History Node

1.2.3

History Node

1.2.2

History Node

1.2.1

History Node

1.2.0

History Node

1.1.2

History Node

1.1.1

History Node

1.1.0

History Node

1.0.0

History Node

0.7.0

History Node

0.6.0

History Node

0.5.0

History Node

0.4.0

History Node

0.3.0

History Node

0.2.0

History Node

0.1.1

History Node

0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
PyHTML-1.3.1.tar.gz (6.2 kB) Copy SHA256 hash SHA256 Source None May 30, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page