Skip to main content

Python native web templates

Project description

💧 PH7

Python native HTML templates

Why PH7?

  • Native to python
  • More code modularity
  • Easy to write reusable components
  • Out of the box editor support
    • Syntax highlighting
    • Code navvigation tools
    • Auto-completion
  • Type safety using MyPy

Install

pip3 install ph7

Quickstart

Write your first block of markup

from ph7.html import body, div, html

template = html(
    body(
        div(
            "Hello, World!",
        )
    )
)

print(template)
<html>
  <body>
    <div>Hello, World!</div>
  </body>
</html>

Or write a CSS class

from ph7.css import CSSObject


class flex_center(CSSObject):
    """Flex center"""

    display = "flex"
    align_items = "center"
    justify_content = "center"


print(flex_center())
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

Or use python function as JavaScript function

from ph7.js import as_js, console, document, fetch


async def fetchDog():
    response = await fetch(
        "https://dog.ceo/api/breeds/image/random",
        {"method": "GET"},
    )
    if response.status != 200:
        response_body = await response.text()
        console.log(f"Error fetching dog; {response_body}")
        return
    data = await response.json()
    document.getElementById("image").src = data.message


print(as_js(fetchDog))
async function fetchDog() {
  let response = await fetch('https://dog.ceo/api/breeds/image/random', {
    'method': 'GET'
  });
  if (response.status != 200) {
    let response_body = await response.text();
    console.log('Error fetching dog; ' + response_body);
    return;
  };
  let data = await response.json();
  document.getElementById('image').src = data.message;
};

PH7 is still in beta-development. It will be production ready with following enhancements

  • Remove performance bottlenecks
  • Unit testing support

Further improvements

  • Typed context for type safety

Links:

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

ph7-0.1.0rc5.tar.gz (43.6 kB view details)

Uploaded Source

File details

Details for the file ph7-0.1.0rc5.tar.gz.

File metadata

  • Download URL: ph7-0.1.0rc5.tar.gz
  • Upload date:
  • Size: 43.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for ph7-0.1.0rc5.tar.gz
Algorithm Hash digest
SHA256 69ca2b5561ea66c3852f0caa38dd2fc360bcce361149e56c988af3955b13b25b
MD5 a7e57ae221dfe29ace10acfb7f87f07a
BLAKE2b-256 d4b54045fc87e9ffbe5e1a332697afb0a5844df669dac9c7a2af6d365c10ae8e

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