Tornado 靜態和模板檔案的配置,模板語言

2022-05-26 09:24:07 字數 2668 閱讀 8263

提神個醒腦!

[(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 os

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'), # 配置靜態檔案路徑

)

import os

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'), # 配置模板路徑

)

注:在handler中使用self.render()方法來渲染模板並返回給客戶端。

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):

return "+".join(titles)

class indexhandler(requesthandler):

def get(self):

house_list = [,]

self.render("index.html", houses=house_list, title_join = house_title_join)

前端就像我們在python中一樣,可以直接呼叫:

和django差不多,tornado結尾用end。

當我們在頁面寫、"等時,被轉換為對應的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 儲存位置 應用是個模組,這個資料夾應該與模組同級 如果它是乙個包,那麼...