国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

高性能web服務器框架Tornado簡單實現restful接口及開發實例

2020-02-23 05:33:57
字體:
來源:轉載
供稿:網友

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

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

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

pip install tornado

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

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

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

再來說說tornado接受請求的方式:
關于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參數。
關于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來區分相應的。
扯淡的完了,大家測試下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()             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邯郸县| 蓬莱市| 清苑县| 浦江县| 聂拉木县| 昭苏县| 东乌珠穆沁旗| 齐齐哈尔市| 永州市| 鹿泉市| 故城县| 大港区| 潜江市| 瓦房店市| 渑池县| 武鸣县| 隆昌县| 宜昌市| 武冈市| 龙川县| 吴江市| 东兰县| 廊坊市| 永宁县| 原阳县| 满城县| 湖州市| 吉水县| 夏河县| 宿迁市| 光泽县| 东丰县| 六安市| 进贤县| 昔阳县| 遂溪县| 芜湖市| 蒲江县| 黔西县| 岚皋县| 前郭尔|