Tornado web框架學習筆記

2022-09-07 09:36:10 字數 4127 閱讀 3662

tornado是一種 web 伺服器軟體的開源版本,它是非阻塞式伺服器,而且速度相當快。

一、基本操作

import

tornado.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 import

uimodule

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 import

escape

deftab(self,val):

print(self,val) #

slef:

return

'uimethod'#

返回html標籤會直接輸出,在settings中需要配置

自定義方法需要在settings進行註冊,才能在html檔案中使用

import

method 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 最好先初始化,不然用到的時候沒初始化會產生奇怪的錯誤...