正式决定从KID改到Genshi。虽然Jinja的性能的确好,但是Script风格的Web template毕竟还是不如XML风格的好看和规范。试了一下发现,Genshi与KID的差别也不是很大,迁移过来还是很方便的。
Genshi是一个日文词汇“原糸(げんし)”——咋又是日本人整出来的捏?啥时国人能整出点像样的东东来,别只会弄些烧香的熊猫之类,一点建设性都木有——它的设计目标就是修改KID以提供更好的性能。
不过试用Genshi还是碰到一些困难,最主要的是因为我对KID也不熟,而Genshi的资料又太少,除了一个并不详尽的Guide以外,就是一个Example。研究了一阵才理出一点头绪,这里就拿Example来说明一下吧。
把下载的Genshi压缩包解开后,在examples/turbogears下是一个完整的例子,它的创建方法与标准的project(使用KID)是完全一样的。不同之处主要有两个:
1、需要修改config/app.cfg
2、修改templates下的模板文件
app.cfg的修改很简单,把其中kid.xxx的项目都注释掉,再增加如下一行内容:
tg.defaultview = "genshi"
修改模板文件则要麻烦一些。主要是几个方面:
1、TG默认的KID基本模板sitetemplate不能用了,需要把Genshi的Example里的那个sitetemplate.html拿来用。
2、模板的xmlns不同,模板的继承方式不同(详见Example);注意:在Genshi里,最终要用于显示的模板,在include标记中不能包含fallback标记。
3、其它XML tag不同。
列简表如下:
|
KID |
Genshi |
xmlns |
xmlns:py="http://purl.org/kid/ns#" |
xmlns:py="http://genshi.edgewall.org/" xmlns:xi="http://www.w3.org/2001/XInclude"
|
继承 |
py:extends="sitetemplate" |
<xi:include href="sitetemplate.html"><xi:fallback/></xi:include> 不过在最终显示页面的模板(即不是用于被继承的模板)是这样的: <xi:include href="master.html" />
|
其它XML tag (如在master模板中包含 welcome模板内容的部分位置) |
<div py:replace="[item.text]+item[:]"/> |
<div py:replace="select('*|text()')"/> |
基本上就是这样,更多的东东还在研究中。
分享到:
相关推荐
Genshi的核心功能包括解析、生成和操作这些标记语言,以便将动态数据与静态布局结合,最终呈现给客户端。本文将详细介绍如何搭建Genshi的运行环境和编译环境。 首先,确保你已经安装了Python。Genshi是基于Python的...
Genshi是一个强大的Python库,主要用于生成Web内容。在标题"Genshi-0.7.tar.gz"中,我们可以看到这是Genshi的一个版本0.7的压缩包文件,格式为tar.gz,这是一种常见的Linux和Unix系统中用于打包和压缩文件的格式。...
Genshi-0.4.4.win32.exe
Genshi-0.7
Genshi BASIC的翻译; 创建BASIC的一种简单方言以学习制作编程语言的基础。 尽管为自定义BASIC方言编写解释器几乎没有用,但我学到的相同的词法分析和解释基础也可以应用于其他语言。 我最初是在2019年编写此书的...
离线安装包,亲测可用
资源分类:Python库 所属语言:Python 资源全名:fresco-genshi-0.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Genshi-0.7-cp27-none-win32
标题中的"Genshi-0.5.1.tar.gz"是一个软件包,名为Genshi的版本0.5.1,其被压缩成tar.gz格式。这种格式是Linux和Unix环境中常用的压缩方式,由tar工具进行文件打包,再通过gzip工具进行压缩。在描述中提到的“PDF ...
Genshi-0.8.dev0-py3-none-any
Genshi-0.7-cp27-none-win_amd64
Genshi-0.8.dev0-py3-none-any.whl
Genshi-0.8.dev0-cp27-none-win32
Genshi-0.8.dev0-cp27-none-win_amd64
文件放服务器下载,请务必到电脑端资源预览或者资源详情查看然后下载
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...
文件放服务器下载,请务必到电脑端资源预览或者资源详情查看然后下载
文件放服务器下载,请务必到电脑端资源预览或者资源详情查看然后下载
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...