這是我參與8月更文挑戰的第10天,活動詳情查看:8月更文挑戰html
學委以前在看Jupyter組件的源碼的時候,發現了tornado這個web框架。python
不單單作一個web框架, 經過使用非阻塞網絡I/O,Tornado能夠擴展到數萬個開放鏈接。web
這樣很是適合 long polling , WebSockets 以及其餘須要與每一個用戶創建長期鏈接的應用程序。編程
好,下面安裝試用一下。markdown
pip install tornado
複製代碼
pip 不會用的朋友能夠看看 # 秒懂精通pip並快速體驗深度學習應用吧!【多圖建議收藏】網絡
來一個簡單的,保存下面代碼爲app.py文件app
""" 雷學委#代碼Demo """
import tornado.ioloop
import tornado.web
「」「編寫一個請求處理器」「」
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, Tornado Server");
"""建立一個web app"""
def make_app():
#綁定接口「/」 到MainHandler
return tornado.web.Application([
(r"/", MainHandler),
])
#程序入口
if __name__ == '__main__':
app = make_app()
app.listen(8080)
tornado.ioloop.IOLoop.current().start()
複製代碼
運行以下:(python app.py)框架
效果以下:tornado
這個示例很簡單,先學會用起來。oop
""" 雷學委#代碼Demo """
import tornado.ioloop
import tornado.web
#一個處理form的請求處理器
class MyFormHandler(tornado.web.RequestHandler):
def get(self):
#直接頁面渲染一個form
self.write('<html><body class="leiXueWei"><form action="/form" method="POST">'
'<input type="text" name="message">'
'<input class="leiXueWei" type="submit" value="Submit">'
'</form></body></html>')
def post(self):
self.set_header("Content-Type", "text/plain")
self.write("You wrote " + self.get_body_argument("message"))
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, Tornado Server");
def make_xue_wei_app():
#使用application加載多個路由: 「/」 接口路由 和 「/form」 接口路由
return tornado.web.Application([
(r"/", MainHandler),
(r"/form", MyFormHandler)
])
if __name__ == '__main__':
app = make_xue_wei_app()
app.listen(18081)
tornado.ioloop.IOLoop.current().start()
複製代碼
以上代碼比前面第一個示例多了一個form的請求處理器和路由加載。
看看頁面渲染的效果,沒有內嵌任何js,這個submit按鈕就直接把發起了POST請求給「/form」接口。
並且博主也沒有編寫任何JS處理頁面,特別簡化,這個」小魔法「是本文想要推薦tornado的一個緣由!
以上隨筆,簡單使用分享,後面再繼續推這個框架的解讀。
對了,學委還有這個能夠關注長期閱讀 =>雷學委趣味編程故事彙編
或者=> 雷學委NodeJS系列
持續學習持續開發,我是雷學委!
編程頗有趣,關鍵是把技術搞透徹講明白。
創做不易,請多多支持,點贊收藏支持學委吧!
關於Pip的使用 => juejin.cn/post/698259…
Tornado => www.osgeo.cn/tornado/