Python Tornado輕鬆寫一個Web應用

這是我參與8月更文挑戰的第10天,活動詳情查看:8月更文挑戰html

Tornado是什麼

學委以前在看Jupyter組件的源碼的時候,發現了tornado這個web框架。python

不單單作一個web框架, 經過使用非阻塞網絡I/O,Tornado能夠擴展到數萬個開放鏈接。web

這樣很是適合 long polling , WebSockets 以及其餘須要與每一個用戶創建長期鏈接的應用程序。編程

好,下面安裝試用一下。markdown

安裝

pip install tornado
複製代碼

pip 不會用的朋友能夠看看 # 秒懂精通pip並快速體驗深度學習應用吧!【多圖建議收藏】網絡

試試看使用tornado框架來寫一個web application

來一個簡單的,保存下面代碼爲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

再試試作一個form

""" 雷學委#代碼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/

相關文章
相關標籤/搜索