python模板引擎。

backslant的Python项目详细描述


backplant是一个模板引擎,它的构建方式与以前完全不同。


您可以将迭代器或生成器作为输入馈送,并获得迭代输出。

第三-它通过导入工作。如果你想得到模板,只需导入并使用它。如果您想要包含
其他模板-导入它。如果你想在某个目录模板,导入它!就像“来自”。导入其他模板``.
使用绝对导入或相对导入。

backslant.backslantfinder())


如果要将呈现的HTML发送到浏览器:

h1“header”header“


您可以定义一个函数:

-def render_form(method):
form(method=method)
input(type=“text”value=“123”)


end call it:

h1
==render_form('post')


是的,这很简单,您只需使用python构造。这里的`=`是`-yield from`.
,`=`是`-yield`.

的快捷方式,现在可以用函数来继承模板。

base.bs:

!doctype/html
html
head
title“页面标题”
body
h1{'class':''.join(['main','content'],“ng app”:“application”}
页眉
div.content
==options['content_block'](
div.footer
backslant 2015


index.bs:

-from。import base
-def content():
-for i in range(10):
p
='paragraph{}'。format(i)
==base.render(content\u block=content)



但是我们有语法糖:

:call base.render(*options)
:content_block
-对于范围(10)内的i:
p
=paragraph{}。format(i)
:footer_block
p“index page”

参数
----

您可以使用arg=`parentised python expression or variable name`或
`tag.class{'a':5,'b':''.join(options.classes)}`表单。




render或not render?
---------


编译模板时,我们需要它以某种方式放置在模块中。如果您在顶层有任何标记或调用,
,那么我们肯定必须将它们放入函数中。我们为此创建“render”函数。
然后导入模板并调用此“render”。

然后backlant不会在“render”函数中隐式覆盖
,这是定义模板libs的方法。你甚至可以在PyPI上分发它。
BR/> BR/>烧瓶
-
BR/>如果你想把反斜率整合到现有的项目中,重写所有模板是很痛苦的。因此
我们有解决方法:

从backplant.flask导入extend_jinja2,包括_jinja2



-来自Backlant.Flask Import Extend_Jinja2,include_jinja2

:调用extend_jinja2('layouts/base.html')
-def content(ctx):
==include_jinja2('layouts/header.html')
div.container
div.page-header
h1
=选项[“公司]。别名



你可以将性能与Jinja2进行比较。
几乎相等。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使安卓材质看起来漂亮?   在运行的java jar中打开文件   java如何在RxJava中为列表使用take()运算符?   flyway 1.4.2版在Java 1.7上运行?   java为什么在到达loadfactor时需要调整哈希集合的大小,为什么不能等到集合已满   数组Java对象未返回预期数据   java在Eclipse上的Gradle项目中找不到资源:/METAINF/BenchmarkList   java如何为Spring引导应用程序提供React构建文件   java如何在jpa中创建表作为InnoDB?   Android上的java DRM安全级别   java如何在单击按钮时创建自定义Dilaog   java从多对多关系hibernate创建的表中列出数据   java ElasticSeach |在删除索引后找不到插入的文档   java是否已弃用图表上的javaFX向下展开方法?   java由于某种原因,单词sinchservice和活动的名称有一个错误,即不能解析错误“CallActivity”?