提神個醒腦!
[(r'/', indexhandler)],
static_path=os.path.join(os.path.dirname(__file__), "static"), # 配置靜態檔案路徑
)在這裡,我們設定了乙個當前應用目錄下名為statics的子目錄作為static_path的引數。現在應用將以讀取statics目錄下的filename.ext來響應諸如/static/filename.ext的請求,並在響應的主體中返回。
注:對於靜態檔案目錄的命名,為了便於部署,建議使用static我們再看剛剛內種方式訪問頁面時使用的路徑,這中url顯然對使用者是不友好的,訪問很不方便。我們可以通過tornado.web.staticfilehandler來自由對映靜態檔案與其訪問路徑url。
tornado.web.staticfilehandler是tornado預置的用來提供靜態資源檔案的handler。
import osfrom tornado.web import staticfilehandler # 引入staticfilehandler模組
current_path = os.path.dirname(__file__) # 上一層目錄
[(r"/$",indexhandler),
(r"/(.*)",staticfilehandler,), # 優化檔案路徑(不用在url打那麼多),設定預設值為index
],debug = true,
static_path = os.path.join(current_path,'static'), # 配置靜態檔案路徑
)
import os注:在handler中使用self.render()方法來渲染模板並返回給客戶端。from tornado.web import staticfilehandler # 引入staticfilehandler模組
current_path = os.path.dirname(__file__) # 上一層目錄
[(r"/$",indexhandler),
(r"/(.*)",staticfilehandler,), # 優化檔案路徑(不用在url打那麼多),設定預設值為index
],debug = true,
static_path = os.path.join(current_path,'static'), # 配置靜態檔案路徑
template_path = os.path.join(current_path,'template'), # 配置模板路徑
)
tornado的母版語言和django/jinja2差不多,這裡著重不同的地方。
tornado中的}不僅可以是變數,還可以是表示式:
前端:
後端渲染:¥}/晚
}整套出租 - }分/}點評 - }
class indexhandler(requesthandler):def get(self):
house_info =
self.render("index.html", **house_info)
... ... ...static_url()...
...
tornado模板模組提供了乙個叫作static_url的函式來生成靜態檔案目錄下檔案的url。如下面的示例**:
優點:
在模板中還可以傳自己編寫的函式,只需要將函式名作為模板的引數傳遞即可,就像其他變數一樣。
可以在後端直接定義乙個函式,傳到前端:
def house_title_join(titles):前端就像我們在python中一樣,可以直接呼叫: 和django差不多,tornado結尾用end。return "+".join(titles)
class indexhandler(requesthandler):
def get(self):
house_list = [,]
self.render("index.html", houses=house_list, title_join = house_title_join)
當我們在頁面寫、"等時,被轉換為對應的html(
>
)字元。
輸出不被轉義的原始格式的3種方式:
1、} ==> ;
3、在每頁模板中修改自動轉義行為,新增語句;
注意:在firefox瀏覽器中會直接彈出alert視窗,而在chrome瀏覽器中,需要set_header("x-xss-protection", 0),可以在self.write()前新增響應頭self.set_header("x-xss-protection",0)解決
關閉自動轉義後,可以使用escape()函式來對特定變數進行轉義}
tornado模板與靜態資源
現在有乙個預先寫好的靜態頁面檔案 我們來看下如何用tornado提供靜態檔案。類似檢視類,區分使用者的請求方式 define port default 8000,type int class indexhandler requesthandler 主路由處理類 對於不同的請求方式,我們用不同的方法 ...
tornado靜態檔案和快取檔案
靜態檔案是我們在web中經常見到的,如檔案 css檔案 js檔案等等,在tornado如何處理呢?在tornado中,處理靜態檔案的類staticfilehandler,在web.py模組中,該類不僅處理靜態檔案的對映也處理了靜態檔案的主動式快取。處理靜態檔案時需要設定settings中關於靜態檔案...
Flask 靜態檔案 和 模板渲染
靜態檔案 一般用於存放,樣式檔案 css,js等 儲存位置 包中或者檔案所在目錄建立乙個 static 目錄 訪問 在應用中使用 static 即可訪問 更好的方式是使用url for方法 例如 模板渲染 模板引擎 jinja2 儲存位置 應用是個模組,這個資料夾應該與模組同級 如果它是乙個包,那麼...