欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

高性能web服務器框架Tornado簡單實現(xiàn)restful接口及開發(fā)實例

 更新時間:2014年07月16日 08:39:33   投稿:hebedich  
Tornado和現(xiàn)在的主流Web服務器框架(包括大多數(shù)Python的框架)有著明顯的區(qū)別:它是非阻塞式服務器,而且速度相當快。得利于其 非阻塞的方式和對epoll的運用,Tornado每秒可以處理數(shù)以千計的連接,這意味著對于實時Web服務來說,Tornado是一個理想的Web框架。

有個朋友讓我搞搞tornado框架,說實話,這個框架我用的不多。。。

我就把自己的一些個運維研發(fā)相關(guān)的例子,分享給大家。

怎么安裝tornado,我想大家都懂。

pip install tornado

再來說說他的一些個模塊,官網(wǎng)有介紹的。我這里再啰嗦的復讀機一下,里面摻夾我的理解。

主要模塊
web - FriendFeed 使用的基礎(chǔ) Web 框架,包含了 Tornado 的大多數(shù)重要的功能,反正你進入就對了。
escape - XHTML, JSON, URL 的編碼/解碼方法
database - 對 MySQLdb 的簡單封裝,使其更容易使用,是個orm的東西。
template - 基于 Python 的 web 模板系統(tǒng),類似jinja2
httpclient - 非阻塞式 HTTP 客戶端,它被設(shè)計用來和 web 及 httpserver 協(xié)同工作,這個類似加個urllib2
auth - 第三方認證的實現(xiàn)(包括 Google OpenID/OAuth、Facebook Platform、Yahoo BBAuth、FriendFeed OpenID/OAuth、Twitter OAuth)
locale - 針對本地化和翻譯的支持
options - 命令行和配置文件解析工具,針對服務器環(huán)境做了優(yōu)化,接受參數(shù)的

底層模塊
httpserver - 服務于 web 模塊的一個非常簡單的 HTTP 服務器的實現(xiàn)
iostream - 對非阻塞式的 socket 的簡單封裝,以方便常用讀寫操作
ioloop - 核心的 I/O 循環(huán)

再來說說tornado接受請求的方式:
關(guān)于get的方式

class MainHandler(tornado.web.RequestHandler): 
  def get(self): 
    self.write("You requested the main page") 
class niubi(tornado.web.RequestHandler): 
  def get(self, story_id): 
    self.write("xiaorui.cc niubi'id is " + story_id) 
application = tornado.web.Application([ 
  (r"/", MainHandler), 
  (r"/niubi/([0-9]+)", niubi), 
])

這樣我們訪問 /niubi/123123123 就會走niubi這個類,里面的get參數(shù)。
關(guān)于post的方式

class MainHandler(tornado.web.RequestHandler): 
  def get(self): 
    self.write('<html><body><form action="/" method="post">'
         '<input type="text" name="message">'
         '<input type="submit" value="Submit">'
         '</form></body></html>') 
  def post(self): 
    self.set_header("Content-Type", "text/plain") 
    self.write("xiaorui.cc and " + self.get_argument("message"))

在tornado里面,一般get和post都在一個訪問路由里面的,只是按照不同method來區(qū)分相應的。
扯淡的完了,大家測試下get和post。

import tornado.ioloop 
import tornado.web 
import json 
class hello(tornado.web.RequestHandler): 
  def get(self): 
    self.write('Hello,xiaorui.cc') 
class add(tornado.web.RequestHandler): 
  def post(self): 
    res = Add(json.loads(self.request.body)) 
    self.write(json.dumps(res)) 
def Add(input): 
  sum = input['num1'] + input['num2'] 
  result = {} 
  result['sum'] = sum 
  return result 
application = tornado.web.Application([ 
  (r"/", hello), 
  (r"/add", add), 
]) 
if __name__ == "__main__": 
  application.listen(8888) 
  tornado.ioloop.IOLoop.instance().start() 

#大家可以寫個form測試,也可以用curl -d測試

相關(guān)文章

  • 詳解python中的線程與線程池

    詳解python中的線程與線程池

    這篇文章主要介紹了python線程與線程池,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • wxpython布局的實現(xiàn)方法

    wxpython布局的實現(xiàn)方法

    這篇文章主要介紹了wxpython布局的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • 五個方便好用的Python自動化辦公腳本的實現(xiàn)

    五個方便好用的Python自動化辦公腳本的實現(xiàn)

    在沒有人工干預的情況下,機器可以自己完成各項任務,這大大提升了工作效率。Python因為語法簡潔易懂,而且有豐富的第三方工具庫,所以非常適合編寫自動化腳本,本文就為大家?guī)砹宋鍌€這樣的腳本,需要的可以參考一下
    2022-01-01
  • tensorflow實現(xiàn)將ckpt轉(zhuǎn)pb文件的方法

    tensorflow實現(xiàn)將ckpt轉(zhuǎn)pb文件的方法

    這篇文章主要介紹了tensorflow實現(xiàn)將ckpt轉(zhuǎn)pb文件的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • python交互界面的退出方法

    python交互界面的退出方法

    今天小編就為大家分享一篇python交互界面的退出方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python3+PyQt5 自定義窗口部件--使用窗口部件樣式表的方法

    python3+PyQt5 自定義窗口部件--使用窗口部件樣式表的方法

    今天小編就為大家分享一篇python3+PyQt5 自定義窗口部件--使用窗口部件樣式表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python對站點數(shù)據(jù)做EOF且做插值繪制填色圖

    python對站點數(shù)據(jù)做EOF且做插值繪制填色圖

    這篇文章主要介紹了python對站點數(shù)據(jù)做EOF且做插值繪制填色圖,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,,需要的小伙伴可以參考一下
    2022-09-09
  • Python?pygame項目實戰(zhàn)監(jiān)聽退出事件

    Python?pygame項目實戰(zhàn)監(jiān)聽退出事件

    這篇文章主要介紹了Python?pygame項目實戰(zhàn)監(jiān)聽退出事件,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Django DRF APIView源碼運行流程詳解

    Django DRF APIView源碼運行流程詳解

    這篇文章主要介紹了Django DRF APIView源碼運行流程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • python中property和setter裝飾器用法

    python中property和setter裝飾器用法

    今天小編就為大家分享一篇python中property和setter裝飾器用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論