跳转到主要内容

Flask的htmldoom集成

项目描述

Flask-Htmldoom

htmldoom集成到Flask

查看带有性能调试实时演示

用法

安装

pip install Flask-Htmldoom

连接到Flask

app.py

import os

from flask import Flask

from flask_htmldoom import render_template

app = Flask(__name__)


@app.route("/")
def hello_htmldoom_view():
    """htmldoom rendered view"""
    return render_template("templates.hello", data="Hello htmldoom")


if __name__ == "__main__":
    app.run("0.0.0.0", int(os.environ.get("PORT", "8080")), debug=True)

templates/hello.py

from htmldoom import elements as e
from htmldoom import renders

from .layout import render_document


@renders(
    e.body()(
        e.h3()("{contents}"),
        e.a(href="/")("Home"),
    )
)
def render_body(data):
    return {"contents": data["data"]}


def render(data):
    return render_document(data, body_renderer=render_body)

templates/layout.py

from htmldoom import base as b
from htmldoom import elements as e
from htmldoom import render as _render
from htmldoom import renders

doctype = b.doctype("html")


@renders(e.title()("{doctitle}"))
def render_title(doctitle):
    return {"doctitle": doctitle}


@renders(e.body()("{content}"))
def render_body(data):
    raise NotImplementedError("You are trying to render a layout.")


@renders(doctype, e.html()(e.head()("{title}"), "{body}"))
def render_document(
    data,
    title_renderer=render_title,
    body_renderer=render_body,
):
    return {
        "doctype": doctype,
        "title": title_renderer(doctitle=data["data"]),
        "body": body_renderer(data=data),
    }


def render(data):
    return render_document(data=data)

示例

在此处找到演示和示例

在Heroku上部署示例

git push heroku $(git subtree split --prefix examples/2_hackernews master):master

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装软件包的信息。

源分发

Flask-Htmldoom-0.2.1.tar.gz (3.3 kB 查看散列值)

上传时间 源码

构建分发版

Flask_Htmldoom-0.2.1-py3-none-any.whl (3.8 kB 查看散列值)

上传时间 Python 3

由以下支持