`
touchmm
  • 浏览: 1065827 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Genshi笔记

阅读更多

正式决定从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的核心功能包括解析、生成和操作这些标记语言,以便将动态数据与静态布局结合,最终呈现给客户端。本文将详细介绍如何搭建Genshi的运行环境和编译环境。 首先,确保你已经安装了Python。Genshi是基于Python的...

    Genshi-0.7.tar.gz

    Genshi是一个强大的Python库,主要用于生成Web内容。在标题"Genshi-0.7.tar.gz"中,我们可以看到这是Genshi的一个版本0.7的压缩包文件,格式为tar.gz,这是一种常见的Linux和Unix系统中用于打包和压缩文件的格式。...

    Genshi-0.4.4.win32.exe

    Genshi-0.4.4.win32.exe

    Genshi-0.7

    Genshi-0.7

    Genshi-BASIC:Genshi BASIC的翻译; 创建BASIC的简单方言以学习制作编程语言的基础

    Genshi BASIC的翻译; 创建BASIC的一种简单方言以学习制作编程语言的基础。 尽管为自定义BASIC方言编写解释器几乎没有用,但我学到的相同的词法分析和解释基础也可以应用于其他语言。 我最初是在2019年编写此书的...

    python-genshi-0.7-3.el7.x86_64.rpm

    离线安装包,亲测可用

    Python库 | fresco-genshi-0.3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:fresco-genshi-0.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Genshi-0.7-cp27-none-win32

    Genshi-0.7-cp27-none-win32

    Genshi-0.5.1.tar.gz_5 to 1_parser text_pdf_pdf parser java_pdf t

    标题中的"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.8.dev0-py3-none-any

    Genshi-0.7-cp27-none-win_amd64

    Genshi-0.7-cp27-none-win_amd64

    Genshi-0.8.dev0-py3-none-any.whl

    Genshi-0.8.dev0-py3-none-any.whl

    Genshi-0.8.dev0-cp27-none-win32

    Genshi-0.8.dev0-cp27-none-win32

    Genshi-0.8.dev0-cp27-none-win_amd64

    Genshi-0.8.dev0-cp27-none-win_amd64

    Genshi-0.7-cp27-none-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...

    Genshi-0.8.dev0-py3-none-any.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...

    Genshi-0.7-cp27-none-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...

    Genshi-0.8.dev0-cp27-none-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...

    Trac+SVN+Apache安装笔记

    首先,确保你已经准备好所有必要的软件包,包括Apache、SVN、TortoiseSVN、Python、Genshi、SVN-Python绑定、pysqlite、ez_setup.py、mod_python以及Apache22Passwd工具。 **步骤1:安装Apache服务器** 安装Apache...

    Genshi-0.8.dev0-cp27-none-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...

Global site tag (gtag.js) - Google Analytics