Python Tornado框架輕松寫(xiě)一個(gè)Web應(yīng)用的全過(guò)程
Tornado是什么
學(xué)委之前在看Jupyter組件的源碼的時(shí)候,發(fā)現(xiàn)了tornado這個(gè)web框架。
不僅僅做一個(gè)web框架, 通過(guò)使用非阻塞網(wǎng)絡(luò)I/O,Tornado可以擴(kuò)展到數(shù)萬(wàn)個(gè)開(kāi)放連接。
這樣非常適合 long polling , WebSockets 以及其他需要與每個(gè)用戶建立長(zhǎng)期連接的應(yīng)用程序。
好,下面安裝試用一下。
安裝
pip install tornado
pip 不會(huì)用的朋友可以看看 # 秒懂精通pip并快速體驗(yàn)深度學(xué)習(xí)應(yīng)用吧!【多圖建議收藏】
試試看使用tornado框架來(lái)寫(xiě)一個(gè)web application
來(lái)一個(gè)簡(jiǎn)單的,保存下面代碼為app.py文件
""" 雷學(xué)委#代碼Demo """ import tornado.ioloop import tornado.web “”“編寫(xiě)一個(gè)請(qǐng)求處理器”“” class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, Tornado Server"); """創(chuàng)建一個(gè)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()
運(yùn)行如下:(python app.py)
效果如下:
這個(gè)示例很簡(jiǎn)單,先學(xué)會(huì)用起來(lái)。
再試試做一個(gè)form
""" 雷學(xué)委#代碼Demo """ import tornado.ioloop import tornado.web #一個(gè)處理form的請(qǐng)求處理器 class MyFormHandler(tornado.web.RequestHandler): def get(self): #直接頁(yè)面渲染一個(gè)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加載多個(gè)路由: “/” 接口路由 和 “/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()
以上代碼比前面第一個(gè)示例多了一個(gè)form的請(qǐng)求處理器和路由加載。
看看頁(yè)面渲染的效果,沒(méi)有內(nèi)嵌任何js,這個(gè)submit按鈕就直接把發(fā)起了POST請(qǐng)求給“/form”接口。
而且博主也沒(méi)有編寫(xiě)任何JS處理頁(yè)面,特別簡(jiǎn)化,這個(gè)”小魔法“是本文想要推薦tornado的一個(gè)原因!
以上隨筆,簡(jiǎn)單使用分享,后面再繼續(xù)推這個(gè)框架的解讀。
總結(jié)
到此這篇關(guān)于Python Tornado框架輕松寫(xiě)一個(gè)Web應(yīng)用的文章就介紹到這了,更多相關(guān)Python Tornado框架寫(xiě)Web應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
參考鏈接:
關(guān)于Pip的使用 => http://www.dbjr.com.cn/article/219385.htm
Tornado => www.osgeo.cn/tornado/
相關(guān)文章
對(duì)Python 獲取類的成員變量及臨時(shí)變量的方法詳解
今天小編就為大家分享一篇對(duì)Python 獲取類的成員變量及臨時(shí)變量的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python 七種郵件內(nèi)容發(fā)送方法實(shí)例
這篇文章主要介紹了python 七種郵件內(nèi)容發(fā)送方法實(shí)例,需要的朋友可以參考下2014-04-04Python實(shí)現(xiàn)的爬取豆瓣電影信息功能案例
這篇文章主要介紹了Python實(shí)現(xiàn)的爬取豆瓣電影信息功能,結(jié)合具體實(shí)例形式分析了Python基于requests庫(kù)的爬蟲(chóng)使用技巧,需要的朋友可以參考下2019-09-09Python實(shí)現(xiàn)冒泡排序算法的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)冒泡排序算法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python使用擴(kuò)展庫(kù)pywin32實(shí)現(xiàn)批量文檔打印實(shí)例
這篇文章主要介紹了Python使用擴(kuò)展庫(kù)pywin32實(shí)現(xiàn)批量文檔打印實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04python opencv圓、橢圓與任意多邊形的繪制實(shí)例詳解
在本篇文章里小編給大家整理的是關(guān)于python-opencv-圓、橢圓與任意多邊形的繪制內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。2020-02-02自然語(yǔ)言處理之文本熱詞提取(含有《源碼》和《數(shù)據(jù)》)
這篇文章主要介紹了自然語(yǔ)言處理之文本熱詞提取,主要就是通過(guò)jieba的posseg模塊將一段文字分段并賦予不同字段不同意思,然后通過(guò)頻率計(jì)算出熱頻詞,需要的朋友可以參考下2022-05-05