真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

pythonTornado框架入門:一-創(chuàng)新互聯(lián)

  • Tornado介紹

Tornado 是一個(gè)Python web框架和異步網(wǎng)絡(luò)庫(kù) 起初由 FriendFeed 開(kāi)發(fā). 通過(guò)使用非阻塞網(wǎng)絡(luò)I/O, Tornado 可以支持上萬(wàn)級(jí)的連接,處理 長(zhǎng)連接, WebSockets, 和其他 需要與每個(gè)用戶保持長(zhǎng)久連接的應(yīng)用.

成都創(chuàng)新互聯(lián)公司憑借專業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識(shí)和豐厚的資源優(yōu)勢(shì),提供專業(yè)的網(wǎng)站策劃、網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)站優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站改版等服務(wù),在成都十多年的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都數(shù)千家中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。
Tornado 大體上可以被分為4個(gè)主要的部分:
  • web框架 (包括創(chuàng)建web應(yīng)用的 RequestHandler 類,還有很多其他支持的類).
  • HTTP的客戶端和服務(wù)端實(shí)現(xiàn) (HTTPServer and AsyncHTTPClient).
  • 異步網(wǎng)絡(luò)庫(kù) (IOLoop and IOStream), 為HTTP組件提供構(gòu)建模塊,也可以用來(lái)實(shí)現(xiàn)其他協(xié)議.
  • 協(xié)程庫(kù) (tornado.gen) 允許異步代碼寫的更直接而不用鏈?zhǔn)交卣{(diào)的方式.
Tornado web 框架和HTTP server 一起為 WSGI 提供了一個(gè)全棧式的選擇. 在WSGI容器 (WSGIAdapter) 中使用Tornado web框架或者使用Tornado HTTP server 作為一個(gè)其他WSGI框架(WSGIContainer)的容器,這樣的組合方式都是有局限性的. 為了充分利用Tornado的特性,你需要一起使用Tornado的web框架和HTTP server.
  • 安裝

    pip install tornado

  • Tornado web應(yīng)用的結(jié)構(gòu)

    通常一個(gè)Tornado web應(yīng)用包括一個(gè)或者多個(gè) RequestHandler 子類, 一個(gè)可以將收到的請(qǐng)求路由到對(duì)應(yīng)handler的 Application 對(duì)象,和 一個(gè)啟動(dòng)服務(wù)的 main() 函數(shù).

  • Application 對(duì)象
    • Application 對(duì)象是負(fù)責(zé)全局配置的, 包括映射請(qǐng)求轉(zhuǎn)發(fā)給處理程序的路由 表.
      路由表是 URLSpec 對(duì)象(或元組)的列表, 其中每個(gè)都包含(至少)一個(gè)正則 表達(dá)式和一個(gè)處理類. 順序問(wèn)題; 第一個(gè)匹配的規(guī)則會(huì)被使用. 如果正則表達(dá) 式包含捕獲組, 這些組會(huì)被作為 路徑參數(shù) 傳遞給處理函數(shù)的HTTP方法. 如果一個(gè)字典作為 URLSpec 的第三個(gè)參數(shù)被傳遞, 它會(huì)作為 初始參數(shù) 傳遞給 RequestHandler.initialize. 最后 URLSpec 可能有一個(gè)名字 , 這將允許它被 RequestHandler.reverse_url 使用.

  • RequestHandler 子類
    • Tornado web 應(yīng)用程序的大部分工作是在 RequestHandler 子類下完成的. 處理子類的主入口點(diǎn)是一個(gè)命名為處理HTTP方法的函數(shù): get(), post(), 等等. 每個(gè)處理程序可以定義一個(gè)或者多個(gè)這種方法來(lái)處理不同 的HTTP動(dòng)作. 如上所述, 這些方法將被匹配路由規(guī)則的捕獲組對(duì)應(yīng)的參數(shù)調(diào)用.
    • 在處理程序中, 調(diào)用方法如 RequestHandler.render 或者 RequestHandler.write 產(chǎn)生一個(gè)響應(yīng). render() 通過(guò)名字加載一個(gè) Template 并使用給定的參數(shù)渲染它. write() 被用于非模板基礎(chǔ)的輸 出; 它接受字符串, 字節(jié), 和字典(字典會(huì)被編碼成JSON).
    • 在 RequestHandler 中的很多方法的設(shè)計(jì)是為了在子類中復(fù)寫和在整個(gè)應(yīng)用 中使用. 常用的方法是定義一個(gè) BaseHandler 類, 復(fù)寫一些方法例如 write_error 和 get_current_user 然后子類繼承使用你自己的 BaseHandler 而不是 RequestHandler 在你所有具體的處理程序中.

  • hello world”案例:

    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
            def get(self):
                    self.write("Hello, world。你好世界!!!")
    
    class Index(tornado.web.RequestHandler):
            def get(self):
                    self.write("這是一個(gè)首頁(yè)")
    
    class Redirect(tornado.web.RequestHandler):
            def get(self):
                    '''重定向'''
                    # self.redirect(r"/")   # 重定向到根目錄
                    self.redirect(r"http://baidu.com")  # 重定向到百度
    
    class Error(tornado.web.RequestHandler):
            def get(self):
                    '''設(shè)置網(wǎng)頁(yè)狀態(tài)500'''
                    self.set_status(500)   # 頁(yè)面返回500狀態(tài)
    
    class Pic(tornado.web.RequestHandler):
            def get(self):
                    '''圖片'''
                    self.write('')
    
    def make_app():
            '''
                 tornado.web.Application([(網(wǎng)址1),(網(wǎng)址2)])  根據(jù)路徑修改網(wǎng)址內(nèi)容
                 debug=True   報(bào)告異常信息
                 write_error(參數(shù)1:錯(cuò)誤頁(yè),參數(shù)2:錯(cuò)誤異常提示消息)   異常處理
                 set_status(狀態(tài)信息)    設(shè)置響應(yīng)狀態(tài)信息
                 redirect()  重定向處理
                 get_current_user()  獲取用戶信息進(jìn)行用戶驗(yàn)證
                 異步處理:
                    方式一:裝飾器
                    方式二:異步調(diào)用
    
                 '''
            return tornado.web.Application([
                    (r"/", MainHandler),
                    (r"/index", Index),
                    (r"/redirect", Redirect),
                    (r"/error", Error),
                    (r"/pic", Pic),
            ],
            debug=True)     #'debug=True 作用:代碼有更新時(shí) 自動(dòng)重啟
    
    if __name__ == "__main__":
            app = make_app()
            app.listen(8888)
            tornado.ioloop.IOLoop.current().start()
  • 運(yùn)行上面代碼 訪問(wèn)如圖地址

    可以看見(jiàn)會(huì)根據(jù)Application里定義的路徑調(diào)用路徑


?

python  Tornado框架  入門:一
?
?

python  Tornado框架  入門:一
?
?

python  Tornado框架  入門:一

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


分享題目:pythonTornado框架入門:一-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://weahome.cn/article/dpcgoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部