Tornado開發(三) 網頁模板 及擴充套件

2021-08-20 23:35:42 字數 1749 閱讀 8621

6. 多語言支援(internationalization)

作為一款web開發框架,國際化是必不可少的,雖然只做國內**時沒啥用。

如果需要做乙個多語言支援的網頁,首先要準備多語言翻譯檔案,tornado支援兩種格式的翻譯檔案:po/csv,csv更簡潔些,下面以此為例來說明。

csv檔案的格式為(三列):字串,翻譯,」plural」/「singular」,最後一列表明此翻譯為單數時用還是複數時用,因此乙個字串可對應兩個翻譯串,也可為空。需要注意的是逗號後沒有空格。csv格式(其中一行)舉例如下:

"translate this string","i donot know what you say"
將以上行儲存到zh_cn.csv中,意思是如果語言選擇為zn_cn,當碰見」 translate this string」(類似於索引)時,翻譯(替換)為"idonot know what you say"。

準備乙個模板檔案(template.html),內容如下:

主程式檔案如下:

class mainhandler(tornado.web.requesthandler):

def get_user_locale(self):

#user_locale = self.get_argument('lang', none)

#可以通過某些方式來確定語言,這裡直接取中文

return tornado.locale.get('zh_cn')

def get(self):

self.render("template.html")

def runweb():

(r"/", mainhandler),

]) lang_path = os.path.join(os.path.dirname(__file__), 'locales')

tornado.locale.load_translations(lang_path) #載入lang_path下的csv語言檔案

tornado.ioloop.ioloop.current().start()

if __name__ == "__main__":

runweb()

應注意翻譯檔案的位置,此例中,主py檔案和template.html在同一目錄,並在這一目錄下建立locales目錄,而zh_cn.csv在locales下,如果還有其他語言,同樣建立csv檔案,例如zh_tw.csv,放置到locales下,同時根據使用者的可接受的語言設定語言,即將get_user_locale的返回值設定為合適的語言即可。

1.      日誌

乙個完備的應用系統應該包含日誌,便於維護應用的執行。tornado直接利用了python固有的日誌系統(python的logging夠強大了,似乎也無需再做什麼)。tornado在tornado.log中定義了三種日誌:

tornado.access: 請求處理前日誌

tornado.general:通用日誌

在應用中只需import tornado.log,就可以寫日誌了,諸如

tornado只擴充套件了日誌的格式,其他的日誌行為,參見python的logging模組。

在呼叫tornado.options.parse_command_line 或tornado.options.parse_config_file後,會預設呼叫tornado自己的日誌格式設定,需要注意。

h5網頁開發

如果使用vue框架,不足 過渡不行,會出現 使用v html或v cloak解決,注意 務忘記需要分頁的頁面是否需要跳轉前有資料更新需要先修改頁面顯示再跳轉防止返回時的顯示錯誤 如 未讀列表進入詳情,返回後應該是已讀 常見問題 儲存資料不完整導致切換時資料丟失 在進入支付頁前需清除之前遺留資料防止出...

Python爬蟲(三) 網頁解析

所需庫from bs4 import beautifulsoup專案 示例html askurl 獲取頁面html文字 soup beautifulsoup html,html.parser 使用html解析來處理html變數 變數名 item1 soup.find all article 匹配ar...

HTML基礎5 網頁開發工具

網頁開發工具 3.1文件型別宣告標籤 文件型別宣告,作用就是告訴瀏覽器使用哪種html版本顯示網頁 這句 的意思是 當前頁面採取的是html5版本來顯示網頁.注意 1.宣告位於文件中的最前面的位置,處於標籤之前 2.不是乙個html標籤,他就是乙個文件型別宣告標籤。3.2lang 語言種類 用來定義...