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>


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)
        <H1>The content</H1>

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


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


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)
    <INPUT name="username" required/>

Properties with no value required

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


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

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


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

Hello sphc.more

(loosely based on 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 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 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 Class="action-status"></DIV>
    <DIV Class="buttons">
        <BUTTON type="button" id="login-btn">Log In</BUTTON>

Form with fieldsets

>>> form = sphc.more.Form()
>>> about = form.add(sphc.more.Fieldset())
>>> about.add('About'))
>>> about.add_field('Name','name', type='text'))
>>> contact = form.add(sphc.more.Fieldset())
>>> contact.add('About'))
>>> contact.add_field('Name','name', type='text'))


Similar packages


  • 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.

Files for sphc, version 0.9.4
Filename, size File type Python version Upload date Hashes
Filename, size sphc-0.9.4.tar.gz (7.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page