Skip to main content

Simple Pythonic HTML Creator

Project description

  • Ultra simple and works

  • Compatible with Python3/ 2.x

  • Pythonic
    >>> adiv = tf.DIV("Hello World!", id="header_1", Class="header")
    >>> print (adiv)
    <DIV id="header_1" class="header">Hello World</DIV>

Examples

Hello World!

>>> import sphc
>>> tf = sphc.TagFactory()
>>> header = tf.H1("Hello World!")
>>> print(header)
<H1>Hello World</H1>

Constructing a page

>>> doc = tf.HTML()
>>> doc.body = tf.BODY()
>>> doc.body.content = tf.H1("The content")
>>> print(doc)
<HTML>
    <BODY>
        <H1>The content</H1>
    </BODY>
</HTML>

Using list of Tag objects

Especially usefule for constructing tables and select options:

>>> data = [('One', '1'), ('Two', '2'), ('Three', '3')]
>>> atable = tf.TABLE()
>>> for element in data:
>>>     row = tf.TR()
>>>     row.cells = [tf.TD(element[0]), tf.TD(element[1])]
>>>     atable.row = row

Wrapping

>>> block1 = tf.DIV(tf.DIV("content", Class="inner"), Class="outer")
>>> block2 = tf.DIV([tf.DIV(), tf.DIV()], Class="outer")
>>> content = tf.DIV([block1, block2])

Piping

set_required method below sets required property on Tag object AND returns Tag object:

>>> form = tf.FORM()
>>> form.username = tf.INPUT(name="username").set_required()
>>> print(form)
<FORM>
    <INPUT name="username" required/>
</FORM>

Properties with no value required

>>> c = tf.INPUT(nv_attrs=['checked'], type='checkbox', value='foo')
>>> print(c)
<INPUT checked type="checkbox", value="foo"/>

Escaping

>>> print(tf.C(' >> ')) # Default
>>> <C> &gt;&gt; </C>

>>> print(tf.C(' >> ', escape=False))
>>> <C> >> </C>

More

Well since you reached here time to show some experimental stuff.

Hello sphc.more

(loosely based on html5boilerplate.com templates):

>>> import sphc.more
>>> tf = sphc.TagFactory()
>>> class MyPage(sphc.more.HTML5Page):
        def footer(self):
            return tf.FOOTER("Footer text")
>>> my_page = MyPage()
>>> my_page.render()

This will return a string that would contain html exactly like what you have expected

Building a form

>>> import sphc
>>> import sphc.more
>>>
>>> tf = sphc.TagFactory()
>>>
>>> form = sphc.more.Form(classes=['vform'])
>>> form.add_field('Username', tf.INPUT(type="TEXT", id='username', name="username").set_required())
>>> form.add_field('Password', tf.INPUT(type="password", id='password', name="password"))
>>> form.add_buttons(tf.BUTTON("Log In", id='login-btn', type='button'))
>>> print form.build()

<FORM method="POST" Class="vform">
    <DIV Class="field">
        <DIV Class="field-label"> <LABEL For="username">Username</LABEL></DIV>
        <DIV Class="field-input">
            <INPUT required type="TEXT" name="username" id="username"></INPUT><C>*</C>
        </DIV>
    </DIV>
    <DIV Class="field">
        <DIV Class="field-label"> <LABEL For="password">Password</LABEL></DIV>
        <DIV Class="field-input">
            <INPUT type="password" name="password" id="password"></INPUT>
        </DIV>
    </DIV>
    <DIV Class="action-status"></DIV>
    <DIV Class="buttons">
        <BUTTON type="button" id="login-btn">Log In</BUTTON>
    </DIV>
</FORM>

Finally

Similar packages

TODO

  • To add more tests

  • A document class ?

Project details


Download files

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

Source Distribution

sphc-0.8.5.tar.gz (6.5 kB view details)

Uploaded Source

File details

Details for the file sphc-0.8.5.tar.gz.

File metadata

  • Download URL: sphc-0.8.5.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for sphc-0.8.5.tar.gz
Algorithm Hash digest
SHA256 aa1154734344935016c5c1028f8b27fe04afeee0214161545d78a4d1c3627f90
MD5 d5c6779d5a80e4b3658a9e8e263559e4
BLAKE2b-256 d891c53d5a2860bda4db2f298dfdba81c3df9941e9a4ccdf23b31376cbb22695

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page