2013-05-08 41 views
0

我正在構建一個webapp,我希望能夠在給定的條件下動態呈現我的index.html中的div/scripts。我想去做的抽象如下:使用Python/GAE動態生成HTML divs/JS腳本

class MainHandler(webapp2.RequestHandler): 
    def get(self, q): 
     script = "<script>function display_alert(){ {alert('Hello world!'}}</script> <div>hello world</div>" 
     if q is None: 
      q = 'index.html' 
     path = os.path.join (os.path.dirname (__file__), q) 
     self.response.headers ['Content-Type'] = 'text/html' 
     self.response.write (template.render (path, { 
     "script" : script 
     })) 

def main(): 
    application = webapp.WSGIApplication ([('/(.*html)?', MainHandler)], debug=True) 
    util.run_wsgi_app (application) 

if __name__ == '__main__': 
    main() 

的HTML是一個包含一個簡單的index.html文件{{腳本}}。當它呈現出來,它看起來像這樣:

enter image description here

爲什麼不在HTML渲染我正確給它?我嘗試通過simplejson.dumps運行「腳本」變量,它也沒有工作。

回答

4

我相信,HTML是默認的Django模板

在Django這與

{{ script|safe }}

你使用Django渲染你的模板safe模板過濾器來完成逃脫?或不同的引擎?

+0

謝謝,這個作品!我最終通過在django模板中使用for循環來解決我的問題:https://docs.djangoproject.com/en/dev/ref/templates/builtins/ – jumbopap 2013-05-08 23:39:44