HTMLDOOM烧瓶集成
Flask-Htmldoom的Python项目详细描述
烧瓶室
htmldoom烧瓶积分
签出live demo。用法
安装
pip install Flask-Htmldoom
插入烧瓶
应用程序py
importosfromflaskimportFlaskfromflask_htmldoomimportrender_templateapp=Flask(__name__)@app.route("/")defhello_htmldoom_view():"""htmldoom rendered view"""returnrender_template("templates.hello",data="Hello htmldoom")if__name__=="__main__":app.run("0.0.0.0",int(os.environ.get("PORT","8080")),debug=True)
模板/hello.py
fromhtmldoomimportelementsasefromhtmldoomimportrendersfrom.layoutimportrender_document@renders(e.body()(e.h3()("{contents}"),e.a(href="/")("Home"),))defrender_body(data):return{"contents":data["data"]}defrender(data):returnrender_document(data,body_renderer=render_body)
模板/layout.py
fromhtmldoomimportbaseasbfromhtmldoomimportelementsasefromhtmldoomimportrenderas_renderfromhtmldoomimportrendersdoctype=_render(b.doctype("html"))@renders(e.title()("{doctitle}"))defrender_title(doctitle):return{"doctitle":doctitle}@renders(e.body()("{content}"))defrender_body(data):raiseNotImplementedError("You are trying to render a layout.")@renders("{doctype}",e.html()(e.head()("{title}"),"{body}"))defrender_document(data,title_renderer=render_title,body_renderer=render_body,):return{"doctype":doctype,"title":title_renderer(doctitle=data["data"]),"body":body_renderer(data=data),}defrender(data):returnrender_document(data=data)
示例
在heroku上部署示例:
git push heroku $(git subtree split --prefix examples/2_hackernews master):master