tornado是一種 web 伺服器軟體的開源版本,它是非阻塞式伺服器,而且速度相當快。
一、基本操作
importtornado.ioloop
import
tornado.web
#模板引擎
class
mainhandler(tornado.web.requesthandler):
def get(self,*args,**kwargs):
#self.write('hello world')
self.render('
template.html
',mag=''
)self.redirect(
'template.html')
def post(self,*args,**kwargs):
value = slef.get_argument('') #
獲取post提交的資料
cookie = slef.get_cookie() #
獲取cookie資訊
self.render('
template.html
',mag=''
)self.redirect(
'template.html',)
#配置檔案
settings =
#路由系統(r"
/index
",mainhandler),
],**settings)
if__name__ == "
__main__":
tornado.ioloop.ioloop.instance().start()
獲取資訊:slef.get_argument(
'') #
獲取post提交的資料
slef.get_arguments() #
獲取post提交的全部資料
cookie 操作:
slef.set_cookie()
#設定cookie資訊
slef.get_cookie() #
獲取cookie資訊
slef.set_secret_cookie('
cookie
') #
加密cookie
必須settings中配置自己加密的字串
slef.get_secret_cookie(
'cookie
') #
解密cookie
獲取檔案:
slef.request.files['']
self._headers
#獲取請求頭資訊
ps:不同的功能可以分拆到不同的功能資料夾中;實現功能獨立。for迴圈必須return
二、模板引擎
} #獲取列表資訊
#所有需要結束的都以end結尾
自定義模板標籤
可通過 uimothod uimodule 進行自定義方法和模板
2.1、自定義模板
module.py檔案:定義模板類與方法
from tronado.web importuimodule
from tornado import
escape
class
custom(uimodule):
def embedded_css(self):#
嵌入式css樣式
return
"css樣式
"def
css_files(self):
return
'css靜態檔案
'def embedded_j**ascript(self):#
嵌入j**ascript**
return
"j**ascript**
"def
j**ascript_files(self):
return
'j**ascript靜態檔案
'def render(self,*args,**kwargs):
return""
#不設定轉譯是什麼東西直接輸出
#return escape.xhtml_escape('') 轉譯html標籤為字串
method.py檔案:自定義方法
from tornado importescape
deftab(self,val):
print(self,val) #
slef:
return
'uimethod'#
返回html標籤會直接輸出,在settings中需要配置
自定義方法需要在settings進行註冊,才能在html檔案中使用
importmethod as mt
import
module as mm
settings =
html使用
<html
>
<
head
>
<
title
>使用自定義模板
title
>
head
>
<
body
>}
body
>
html
>
三、自定義開源元件
3.1、tornado 自定義繼承的一些事情
#1、多繼承 python是可以多繼承。
import
tornado.ioloop
import
tornado.web
class
foo(object):
def initialize(self):#
initialize是tornado.web.requesthandler 父類中的方法
self a = 123super(foo,self).initialize()
#利用super() 可以執行其他自定義的類
#模板引擎
class
mainhandler(foo,tornado.web.requesthandler):
def get(self,*args,**kwargs):
self.write(
'hello world')
#路由系統(r"
/index
",mainhandler),
],**settings)
if__name__ == "
__main__":
tornado.ioloop.ioloop.instance().start()
#2、通用的繼承方法
'''foo 繼承 tornado.web.requesthandler
mainhandler 再繼承 foo 來實現類方法的擴充套件
'''import
tornado.ioloop
import
tornado.web
class
foo(tornado.web.requesthandler):
def initialize(self):#
initialize是tornado.web.requesthandler 父類中的方法
self a = 123super(foo,self).initialize()
#利用super() 可以執行其他自定義的類
#模板引擎
class
mainhandler(foo):
def get(self,*args,**kwargs):
self.write(
'hello world')
#路由系統(r"
/index
",mainhandler),
],**settings)
if__name__ == "
__main__":
tornado.ioloop.ioloop.instance().start()
實戰google深度學習框架(第三章學習筆記)
p56頁開始學習 3.4 1.初始化所有變數 initial tf.global variables initializer sess.run initial 2.assign賦值命令 tf.assign a,b 把b賦值給a,注意型別要一致w1.assign w2 如果賦值的時候維度不一樣則 tf...
基於深度學習的中文語音識別系統框架學習筆記
2 使用原文提供的聲學模型和語言模型測試結果,資料標籤整理在data路徑下,其中primewords st cmd目前未區分訓練集測試集。若需要使用所有資料集,只需解壓到統一路徑下,然後設定utils.py中datapath的路徑即可。我測試時只使用了thches30語音庫,解壓到data資料夾,修...
C Primer Chapter One學習筆記
筆記 1.流 從io裝置上讀入或寫出的字串行,用來說明字元隨時間順序生成或消耗。2.輸入輸出符可連用原因 operator 或operator 返回stream物件。3.要測試程式那個語句出錯,使用cout 4.新建乙個內建型別,如int i 0 最好先初始化,不然用到的時候沒初始化會產生奇怪的錯誤...