2014-01-21 29 views
2

我正在使用twisted.web.template製作網站,其中多個頁面具有相同html代碼的子窗口。所以我想使用模板,只需將完整的html字符串轉存到佔位符,只要有相同的代碼即可。但它扭曲的模板系統引用這些字符串(部分出於安全原因),因此瀏覽器無法將其解釋爲html。有什麼方法可以解決這個問題嗎?這似乎是一個非常正常的使用場景,並且是以我的經驗使用Apache的基本用法之一...如何將html字符串轉儲爲python扭曲模板

一些示例代碼。我的模板看起來像這樣

<html xmlns:t="http://twistedmatrix.com/ns/twisted.web.template/0.1"> 
    <body> 
     <div t:render="content" /> 
    </body> 
</html> 

和我的渲染類蟒蛇

class ExampleElement(Element): 
    loader = XMLFile(FilePath('template.xml')) 

    @renderer 
    def content(self, request, tag): 
     return tag('<b>This content should be in bold, but is quoted</b>') 

我知道最後一行,我可以寫(在適當的進口)

return tag(tags.b('Bold content')) 

但是HTML字符串我實際上想要放大很多,而且這樣寫起來很不方便,而不僅僅是一個原始的html字符串

回答

3

使用裝載機:

class ExampleElement(Element): 
    loader = XMLFile(FilePath('template.xml')) 

    extraContent = XMLFile(FilePath('extra-content.xml')) 

    @renderer 
    def content(self, request, tag): 
     return self.extraContent.load() 

或者,如果你真的需要額外的東西是在你的源文件,而不是在模板文件中的字符串:

class ExampleElement(Element): 
    loader = XMLFile(FilePath('template.xml')) 

    extraContent = XMLString("<b>This content will be in bold</b>") 

    @renderer 
    def content(self, request, tag): 
     return self.extraContent.load() 
相關問題