<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    躺在沙灘上的小豬

    快樂的每一天

    python and Template.

    也許說法不正確,但是目前我能理解的就是替換,替換指定文本中的內(nèi)容。
    例如:

    <a name="$code$"></a>
    <div class="infomark">$title$</div>
    <div class="info" style="background:#F4F4F4">
    <pre>
        $content$
    </pre>   
    </div>
    <div align="right" class="right"><a href="#000">Top</a></div>
    <br>
    <br>

    我要做的只是替換其中特定格式的 $code$,$title$,$conent$,而已。

    那么我們用re可以輕松搞定(當(dāng)然更復(fù)雜的template需要更深入的去學(xué)習(xí)...)。
    --------------

    import re 
    import sys 
    
    class Template: 
        """ 
            簡單的模板,用于替換指定文本的特殊字符 
       例如:$code$ 
        """ 
        def __init__(self,filename,params,prefix='$',suffix='$'): 
            if not filename: 
                print 'Error:' 
                sys.exit(-1) 
            else: 
                self.filename=filename            
            self.text=''    
            self.params=params 
            self.prefix=prefix 
            self.suffix=suffix 
    
        def getKeys(self): 
            """ 
                返回所有的要求替換匹配的表達(dá)式 
            """ 
            return params.keys() 
    
        def parse(self): 
            
            self.getContent() 
              
            keys = self.params.keys() 
            for key in keys: 
                value = self.params[key] 
                self.__replace(key,value) 
            return self.text 
    
        
        def getContent(self): 
            """ 
                讀取文件的內(nèi)容 
            """ 
            f = open(self.filename) 
            lines = f.readlines() 
            self.text = ''.join(line for line in lines) 
            
        def __replace(self,key,value):        
            #m = re.match(prefix+key+suffix,text) 
            pattern = '\.*\\'+self.prefix+key+'\\'+self.suffix+'\.*' 
            self.text = re.sub(pattern,value,self.text) 
    
    if __name__=='__main__': 
        filename = 'D:\\workspace\\style\\test\\template.xt' 
        params = {'code':'001001','title':'測試','content':'的嘎公司今后;飛機(jī)庫'} 
        t = Template(filename,params) 
        print t.parse()

    ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------

    這樣,我們的python代碼可以更簡單點(diǎn)了

    我們將以前的代碼做修改,如下:

    import cx_Oracle 
    from Template import * 
    
    def parse(): 
        '''generate the content html''' 
    
        sql = '''select t.bz_code code, t.bz_title title, t.bz_content content 
            from bz_czzs t 
            order by t.bz_code''' 
    
        connection = cx_Oracle.connect( 'etasadmin/etasadmin@zhongju' ) 
        cursor = connection.cursor() 
        cursor.execute(sql) 
        item=cursor.fetchone() 
        i=1; 
        print 'begin' 
        while item: 
            i+=1 
            print 'parsing ',i,' item....' 
            writeContent(item[0],item[1],str(item[2])) 
            item=cursor.fetchone() 
    
    def writeContent(code,title,content): 
        filedir='D:\\m\\content\\' 
        
        params = {'code':code,'title':title,'content':content} 
        t = Template('D:\\workspace\\style\\test\\template.xt',params) 
        s = t.parse() 
    
        out = open(filedir+code+".html",'w') 
        out.write(s) 
        out.flush() 
        out.close() 
        
    if __name__=='__main__': 
        print 'parse..................'    
        parse() 
        print 'end'

    參考文檔:
    http://docs.python.org/lib/module-re.html

    關(guān)于template的進(jìn)一步思考:
    一:不用那么復(fù)雜的制定文件全名:
    'D:\\workspace\\style\\test
    template.xt'
    代碼實(shí)現(xiàn)從當(dāng)前的classpath中自動(dòng)尋找該文件,并且制定文件后綴名。
    那么就變的如下簡單了。

    t = Template('template',params)

    posted on 2005-09-20 18:53 martin xus 閱讀(1538) 評論(1)  編輯  收藏 所屬分類: python

    主站蜘蛛池模板: 亚洲国产精品嫩草影院在线观看| 久久国产精品国产自线拍免费| 中文字幕亚洲精品无码| 国产成人亚洲综合网站不卡| 精品女同一区二区三区免费站| 亚洲国产精品免费视频| 免费中文熟妇在线影片| 四虎免费永久在线播放| 亚洲国产日韩在线视频| 91丁香亚洲综合社区| 久久成人永久免费播放| 中国人xxxxx69免费视频| 国产成人精品123区免费视频| 亚洲视频2020| 日韩毛片免费一二三| 成人妇女免费播放久久久| 日本一区二区三区免费高清| 亚洲色成人WWW永久在线观看| 亚洲中文字幕无码mv| 午夜免费福利在线| 亚洲最大在线视频| 日本视频免费高清一本18| 免费真实播放国产乱子伦| 国产免费牲交视频免费播放| 亚洲成av人在线视| 五月婷婷在线免费观看| 亚洲第一区二区快射影院| 国产aa免费视频| 爱丫爱丫影院在线观看免费| 国产免费无遮挡精品视频| 又粗又长又爽又长黄免费视频| 国内自产拍自a免费毛片| 亚洲国产成人手机在线电影bd| 国产一区二区三区免费观看在线 | 黄色免费网址在线观看| 亚洲av日韩av天堂影片精品| caoporm超免费公开视频| 亚洲精品国产精品乱码不卡| 亚洲私人无码综合久久网| 久久精品国产精品亚洲人人 | 全黄A免费一级毛片|