Size: 2853
Comment:
|
Size: 2957
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 31: | Line 31: |
{{{ | {{{#!python #coding=utf-8 from Template import T main=T("""# -*- coding: utf-8 -*- #...略去注释 |
含有章节索引的中文 文章模板
-- limodou [DateTime(2004-08-27T01:30:31Z)] TableOfContents
Otter模板测试记录
这是我记录使用meteor生成Otter模板的记录
测试准备
- 分析Otter模板的整体框架
- 分析结果如下:
- 整个模板数据只有一个,而meteor对于每一个模板均需要一个数据字典。当然是可以考虑共用一个。
- OtTDict.py 确如Zoom.quiet所讲是一个体力活,它完成XML数据字典转换为模板变量值的过程,替换过程是一个通用的方法。不过一些模板的循环处理都是要通过程序才可以实现。编程量相对大。
- 测试准备:
- 只对pcon-pmsg.py进行测试,因此先要将其改成meteor要求的格式。因为在原模板中不能定义子模板,因此还要分离相应的子模板。文件查看:attachment:pcon-pmsg_tmpl.py
- 下面只显示主要部分,注释什么地去掉了。同时模板变量的定义保持原样。
- 只对pcon-pmsg.py进行测试,因此先要将其改成meteor要求的格式。因为在原模板中不能定义子模板,因此还要分离相应的子模板。文件查看:attachment:pcon-pmsg_tmpl.py
1 #coding=utf-8
2 from Template import T
3
4 main=T("""# -*- coding: utf-8 -*-
5 #...略去注释
6
7 from ###Lprotoname###.message import ###MsgBase###
8 import struct
9
10 class ###Uprotoname###PMessage(###MsgBase###.ByteMessage):
11 \"\"\"二进制流连接消息基类\"\"\"
12 def __init__(self):
13 # 消息头
14 self.head = ###MsgBase###.ByteMessageHead(self)
15 # 消息体
16 self.body = ###MsgBase###.ByteMessageBody(self)
17 # 消息工具
18 self.msgutilcls = ###Uprotoname###PMessageUtil
19 # 协议名称
20 self.protocolname = '###Lprotoname###p'
21 # 当前的消息名称
22 self.msgname = ''
23
24 ###Commands###
25
26 class ###Uprotoname###PMessageUtil(###MsgBase###.ByteMessageUtil):
27 \"\"\"二进制长连接消息处理工具类\"\"\"
28 def __init__(self):
29 pass
30
31 # 消息定义
32 ###Uprotoname###PMessageUtil.commandinfo = {
33 ###Commandsinfo###
34 }
35
36 # 通过名称查出消息ID的结构定义
37 ###Uprotoname###PMessageUtil.nametoid = {}
38 for k in ###Uprotoname###PMessageUtil.commandinfo.keys():
39 ###Uprotoname###PMessageUtil.nametoid[###Uprotoname###PMessageUtil.commandinfo[k]] = k
40
41 """)
42
43 Commands = T(""" def pack_###Lprotoname###p_###commandname###(self, fields):
44 ###packcontent###
45
46 def unpack_###Lprotoname###p_###commandname###(self, fields):
47 ###unpackcontent###
48
49 """)
50
51 Lprotoname = T("###lpname###")
52 Uprotoname = T("###upname###")
53 packcontent = T('')
54 unpackcontent = T('')
55 Commandsinfo=T(" ###flag### : '###name###',\n")