Python Tornado框架輕松寫一個(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)寫一個(gè)web application
來(lái)一個(gè)簡(jiǎn)單的,保存下面代碼為app.py文件
"""
雷學(xué)委#代碼Demo
"""
import tornado.ioloop
import tornado.web
“”“編寫一個(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)有編寫任何JS處理頁(yè)面,特別簡(jiǎn)化,這個(gè)”小魔法“是本文想要推薦tornado的一個(gè)原因!


以上隨筆,簡(jiǎn)單使用分享,后面再繼續(xù)推這個(gè)框架的解讀。
總結(jié)
到此這篇關(guān)于Python Tornado框架輕松寫一個(gè)Web應(yīng)用的文章就介紹到這了,更多相關(guān)Python Tornado框架寫Web應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
參考鏈接:
關(guān)于Pip的使用 => http://m.fzitv.net/article/219385.htm
Tornado => www.osgeo.cn/tornado/
相關(guān)文章
使用Python實(shí)現(xiàn)Wake On Lan遠(yuǎn)程開(kāi)機(jī)功能
這篇文章主要介紹了使用Python實(shí)現(xiàn)Wake On Lan遠(yuǎn)程開(kāi)機(jī)功能,文中給大家補(bǔ)充介紹了python通過(guò)wakeonlan喚醒內(nèi)網(wǎng)電腦開(kāi)機(jī),非常不錯(cuò),感興趣的朋友跟隨小編一起學(xué)習(xí)吧2020-01-01
python輸入整條數(shù)據(jù)分割存入數(shù)組的方法
今天小編就為大家分享一篇python輸入整條數(shù)據(jù)分割存入數(shù)組的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
python基礎(chǔ)學(xué)習(xí)之如何對(duì)元組各個(gè)元素進(jìn)行命名詳解
python的元祖和列表類似,不同之處在于元祖的元素不能修改,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)學(xué)習(xí)之如何對(duì)元組各個(gè)元素進(jìn)行命名的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07
Python使用Beautiful Soup爬取豆瓣音樂(lè)排行榜過(guò)程解析
這篇文章主要介紹了Python使用Beautiful Soup爬取網(wǎng)頁(yè)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python實(shí)現(xiàn)提取音樂(lè)頻譜的方法詳解
你有沒(méi)有經(jīng)常好奇一些音樂(lè)軟件的頻譜特效是怎么做的,為什么做的這么好看?有沒(méi)有想試試自己提取音樂(lè)頻譜并可視化展現(xiàn)出來(lái)?本文就來(lái)教你如何利用Python提取音樂(lè)頻譜,快來(lái)學(xué)習(xí)一下吧2022-06-06
Python 中的 plt.hist 函數(shù)基本用法詳解
plt.hist 函數(shù)用于繪制直方圖,直方圖是一種用來(lái)表示數(shù)據(jù)分布的圖形,它將數(shù)據(jù)分成若干個(gè)區(qū)間,然后統(tǒng)計(jì)每個(gè)區(qū)間中數(shù)據(jù)的數(shù)量,最終以柱狀圖的形式展示出來(lái),這篇文章主要介紹了Python 中的 plt.hist 函數(shù)基本用法詳解,需要的朋友可以參考下2021-04-04
python 基于Apscheduler實(shí)現(xiàn)定時(shí)任務(wù)
這篇文章主要介紹了python Apscheduler的使用方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12
Python scrapy增量爬取實(shí)例及實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Python scrapy增量爬取實(shí)例及實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12

