日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tornado模板

發(fā)布時間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tornado模板 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Tornado模板

--------------------靜態(tài)文件-------------------- 1、static_path:通過向web.Application類的構(gòu)造函數(shù)傳遞一個名為static_path的參數(shù)來告訴Tornado從文件系統(tǒng)的一個特定位置提供靜態(tài)文件 app = tornado.web.Application( [(r'/', IndexHandler)], static_path=os.path.join(os.path.dirname(__file__), "statics"), ) 2、對于靜態(tài)文件目錄的命名,為了便于部署,建議使用static 可以通過http://127.0.0.1/static/html/index.html來訪問。而且在index.html中引用的靜態(tài)資源文件,我們給定的路徑也符合/static/...的格式,故頁面可以正常瀏覽。 3、StaticFileHandler:可以通過tornado.web.StaticFileHandler來自由映射靜態(tài)文件與其訪問路徑url。 1、tornado.web.StaticFileHandler是tornado預(yù)置的用來提供靜態(tài)資源文件的handler。 2、 import os current_path = os.path.dirname(__file__) app = tornado.web.Application( [ (r'^/()$', StaticFileHandler, {"path":os.path.join(current_path, "statics/html"), "default_filename":"index.html"}), (r'^/view/(.*)$', StaticFileHandler, {"path":os.path.join(current_path, "statics/html")}), ], static_path=os.path.join(current_path, "statics"), ) 3、path 用來指明提供靜態(tài)文件的根路徑,并在此目錄中尋找在路由中用正則表達(dá)式提取的文件名。 4、default_filename 用來指定訪問路由中未指明文件名時,默認(rèn)提供的文件。 --------------------使用模板-------------------- 1、路徑與渲染 1、使用模板,需要仿照靜態(tài)文件路徑設(shè)置一樣,向web.Application類的構(gòu)造函數(shù)傳遞一個名為template_path的參數(shù)來告訴Tornado從文件系統(tǒng)的一個特定位置提供模板文件 2、 app = tornado.web.Application( [(r'/', IndexHandler)], static_path=os.path.join(os.path.dirname(__file__), "statics"), template_path=os.path.join(os.path.dirname(__file__), "templates"), ) 3、在handler中使用render()方法來渲染模板并返回給客戶端。 self.render("index.html") # 渲染主頁模板,并返回給客戶端。 2、模板語法 1、變量與表達(dá)式 1、在tornado的模板中使用{{}}作為變量或表達(dá)式的占位符,使用render渲染后占位符{{}}會被替換為相應(yīng)的結(jié)果值。 self.render("index.html",**kwargs) 2、{{}}不僅可以包含變量,還可以是表達(dá)式 self.render("index.html",{"p1":100,"p2":200}) {{p1 + p2}} 2、控制語句 1、在Tornado模板中使用Python條件和循環(huán)語句。控制語句以{\%和\%}包圍,并以類似下面的形式被使用: {% if page is None %} 或 {% if len(entries) == 3 %} 2、部分控制語句 1、{% if ... %} ... {% elif ... %} ... {% else ... %} ... {% end %} 2、{% for ... in ... %} ... {% end %} 3、{% while ... %} ... {% end %} 3、函數(shù) 1、static_url():Tornado模板模塊提供了一個叫作static_url的函數(shù)來生成靜態(tài)文件目錄下文件的URL。 1、使用方法 <link rel="stylesheet" href="{{ static_url("style.css") }}"> 2、static_url函數(shù)創(chuàng)建了一個基于文件內(nèi)容的hash值,并將其添加到URL末尾(查詢字符串的參數(shù)v)。這個hash值確保瀏覽器總是加載一個文件的最新版而不是之前的緩存版本。無論是在你應(yīng)用的開發(fā)階段,還是在部署到生產(chǎn)環(huán)境使用時,都非常有用,因?yàn)槟愕挠脩舨槐卦贋榱丝吹侥愕撵o態(tài)內(nèi)容而清除瀏覽器緩存了。 3、另一個好處是你可以改變你應(yīng)用URL的結(jié)構(gòu),而不需要改變模板中的代碼。例如,可以通過設(shè)置static_url_prefix來更改Tornado的默認(rèn)靜態(tài)路徑前綴/static。如果使用static_url而不是硬編碼的話,代碼不需要改變。 2、轉(zhuǎn)義 1、模板中可以通過raw語句來輸出不被轉(zhuǎn)義的原始格式 2、注意:在Firefox瀏覽器中會直接彈出alert窗口,而在Chrome瀏覽器中,需要set_header("X-XSS-Protection", 0) 3、關(guān)閉自動轉(zhuǎn)義: 1、Application中設(shè)置autoescape=None 2、模板中添加 {% autoescape None %} 語句 4、關(guān)閉自動轉(zhuǎn)義后,可以使用escape()函數(shù)來對特定變量進(jìn)行轉(zhuǎn)義:{{ escape(text) }} 3、自定義函數(shù):在模板中還可以使用一個自己編寫的函數(shù),只需要將函數(shù)名作為模板的參數(shù)傳遞即可,就像其他變量一樣。 1、定義函數(shù) def house_title_join(titles): return "+".join(titles) 2、將函數(shù)賦值到指定變量傳遞到模板 self.render("index.html", houses=house_list, title_join = house_title_join) 3、前端調(diào)用指定的函數(shù),并傳入對應(yīng)的參數(shù) {{title_join(house["titles"])}} 4、塊 1、進(jìn)行模板頁的嵌套 1、指定繼承的模板頁 {% extends "base.html" %} 2、定義對應(yīng)的模塊,子模板繼承父級模板進(jìn)行對應(yīng)的替換操作 {% block block_name %} {% end %}

轉(zhuǎn)載于:https://www.cnblogs.com/haochengdu/p/8854309.html

總結(jié)

以上是生活随笔為你收集整理的Tornado模板的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。