摘要:最后只需要在需要的頁面添加如下代碼就行最后在模板還提供了一些其他的功能設置局部變量通過設置局部變量使用語句,使用函數的作用范圍到最近的為止生成一個鏈接百度百度附錄通過設置局部變量百度百度我是
1.ui_modules和ui_methods
第一步:新建文件uimethods.py ,這里的文件名是隨意的只要在import時合法就行
def methods1(self): #注意這里要加上self return "ui_methods 1" def methods2(self): return "ui_methods 2"
新建文件uimodules.py,使用ui_modules需要繼承UIModule類
from tornado.web import UIModule class UiModule(UIModule): def render(self, *args, **kwargs): return "我是ui_module"
第二步:在項目中導入
import util.uimethods import util.uimodules
第三步:在application配置參數,值是導入的模塊名
ui_methods=util.uimethods, ui_modules=util.uimodules, #也可以寫成字典的形式,其實在tornado內部就是解析成字典的形式 ui_modules={"UiModule":util.uimodules.UiModule}, class Calculation: def sum(self,a,b): return a+b class UiHandler(tornado.web.RequestHandler): def fun(self): return "hujing" def get(self): username = "haha" self.render("module.html", username=username, fun=self.fun, cal=Calculation )
第四步:在HTML中調用,導入的ui_modules需要使用module語句調用
{% module UiModule() %}
{{ methods1() }}
ui_modules和ui_methods提高了方法和類的復用性,可以在全局使用。
最后只需要在需要的頁面添加如下代碼就行
{% module Advertisement() %}
最后在模板還提供了一些其他的功能
set設置局部變量
{% set su = Count().sum %} {{ su(6,9) }}
{% set args = Count().args %} {% for a in args(1,2,3,4,5) %} {{ a }}
{% end %}
使用apply語句,使用函數的作用范圍到最近的{%end%}為止
{% apply upper %} hello world
hahaha {% end %} {{ upper("hahaha") }}
linkify生成一個鏈接
{{ linkify("百度: http://www.baidu.com") }}
{%raw linkify("百度: http://www.baidu.com") %}
module.html
Module {{ username }}
{{ fun() }}
{{ cal().sum(6,9) }}
{% import time %} {{ time.time() }}
{% from util.mode_file import sub,upper,Count %} {{ sub(5,3) }}
{{ upper("wenmang") }}
{{ Count().url }}
{% raw Count().url %}
{{ Count().sum(6,9) }}
{{ Count.sum(6,9) }}
{{ Count().args(1,2,3,4) }}
{{ methods1() }}
{% module UiModule() %}
{% set su = Count().sum %} {{ su(6,9)}} {% set args = Count().args %} {% for a in args(1,2,3,4,5)%} {{ a }}
{% end %} {% apply upper %}
ren hao e
xieyulong bu e {% end %}
{{ upper("hahaha") }}
{{ linkify("百度:http://www.baidu.com") }}
{% raw linkify("百度:http://www.baidu.com") %}
uimodules.py
from tornado.web import UIModule class UiModule(UIModule): def render(self, *args, **kwargs): return "我是 ui_module"
uimethods.py
def methods1(self): return "ui_methods1" def methods2(self): return "ui_methods2"
start1.py
import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web import util.uimodules import util.uimethod from tornado.options import define,options define("port",default=9000,help="run port",type=int) class Calculation: def sum(self,a,b): return a+b class UiHandler(tornado.web.RequestHandler): def fun(self): return "hujing" def get(self): username = "haha" self.render("module.html", username=username, fun=self.fun, cal=Calculation ) if __name__ == "__main__": tornado.options.parse_command_line() app = tornado.web.Application( handlers=[ (r"/ui",UiHandler), ], template_path="templates", static_path="static", ui_methods=util.uimethod, ui_modules=util.uimodules, # ui_modules={"UiModule":util.uimodules.UiModule}, debug=True, ) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) tornado.ioloop.IOLoop.instance().start()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44640.html
摘要:從的開始分析的源碼很容易可以看出,通過繼承類定義自己的處理類,來處理請求。類的對象來處理的路由將于處理類組成,關聯起來。調用的來將和綁定在一起初始化一個的對象,由其來處理請求的路由,來利用建立的規則。 從tornado的 Hello,world 開始分析tornado的源碼 pythonimport tornado.ioloop import tornado.web class M...
摘要:譯者說于年月日發布,該版本正式支持的關鍵字,并且用舊版本編譯同樣可以使用這兩個關鍵字,這無疑是一種進步。其次,這是最后一個支持和的版本了,在后續的版本了會移除對它們的兼容。 譯者說 Tornado 4.3于2015年11月6日發布,該版本正式支持Python3.5的async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次...
閱讀 3010·2021-10-08 10:18
閱讀 730·2019-08-30 15:54
閱讀 1062·2019-08-29 18:43
閱讀 2434·2019-08-29 15:33
閱讀 1298·2019-08-29 15:29
閱讀 1599·2019-08-29 13:29
閱讀 1022·2019-08-26 13:46
閱讀 1693·2019-08-26 11:55