Python Tonado 寫一個Web應用
Tornado是什么
最近在看Jupyter源碼發現了tornado這個web框架。
不僅僅做一個web框架,?通過使用非阻塞網絡I/O,Tornado可以擴展到數萬個開放連接。
這樣非常適合?long polling?,?WebSockets?以及其他需要與每個用戶建立長期連接的應用程序。
好,下面安裝試用一下。
安裝
pip install tornado
試試看使用tornado框架來寫一個web application
Tornado Web Server — Tornado 6.2.dev1 文檔
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()
效果如下:
再試試做一個form
import tornado.ioloop import tornado.web #一個處理form的請求處理器 class MyFormHandler(tornado.web.RequestHandler): def get(self): #直接頁面渲染一個form self.write('
') 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_app(): #使用application加載多個路由: “/” 接口路由 和 “/form” 接口路由 return tornado.web.Application([ (r"/", MainHandler), (r"/form", MyFormHandler) ]) if __name__ == '__main__': app = make_app() app.listen(18081) tornado.ioloop.IOLoop.current().start()以上代碼比前面第一個示例多了一個form的請求處理器和路由加載。
看看頁面渲染的效果,沒有內嵌任何js,這個submit按鈕就直接把發起了POST請求給“/form”接口。
而且博主也沒有編寫任何JS處理頁面,特別簡化,這個”小魔法“是本文想要推薦tornado的一個原因!
以上隨筆,后面再繼續推這個框架的解讀。
Tornado
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。