iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 15
0
Modern Web

三十天全端學習:透過javascript(Onsen UI)、python(tornado)、非關聯式資料庫(mongoDB)完成全端學習,建置web app、mobile app。系列 第 15

三十天全端學習(javascript、python、mongoDB)---第十五天:python tornado後台架設 (I)

https://ithelp.ithome.com.tw/upload/images/20181023/20102269VqxIljB4tS.jpg

第十五天:python tornado後台架設 (I)

首先,今天的這張圖,要感謝黑修斯在艾X科技醫電班的同組同學,也是PM的allen,這圖片是由他製作的。
另外我們整組的簡報在此---slideshare


前提概要

day14 教大家如何透過python 的 pymongo來驅動mongoDB。


本文概要

今天會帶大家理解一下,整個python在後台間所用到的套件以及部分技術細節。


正文開始

1. 框架簡介

開源網路服務器框架Tornado,最早由facebook發布,是一款輕量級的Web服務器,同時為一個開發框架。使用非阻塞I/O模型(epoll),主要是為了對付多並行數據請求,而被開發出來。

2. 架構流程

前面我們學習了python套件pymongo對mongoDB的基本寫讀功能,而tornado用於對應前端的服務器,這邊會使用到兩個server,一個為websocket,一個為webserver。

3. websocket與webserver的用途

websocket

WebSocket是一種在單個TCP連接上進行全雙工通訊的協定。WebSocket通訊協定於2011年被IETF定為標準RFC 6455,並由RFC7936補充規範。WebSocket API也被W3C定為標準。
WebSocket使得用戶端和伺服器之間的資料交換變得更加簡單,允許伺服器端主動向用戶端推播資料。在WebSocket API中,瀏覽器和伺服器只需要完成一次交握,兩者之間就直接可以建立永續性的連接,並進行雙向資料傳輸。
來源:維基百科

websocket在我們的三十天中,會扮演主要的指令分析器與通訊的部分。

而webserver在我們的三十天中,主要用於圖片的請求。

4. tornado的安裝:

$ pip install tornado

安裝完畢,執行下列程式碼:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

在瀏覽器輸入http://localhost:8888/ ,應該可以看到Hello, world,如下圖:
https://ithelp.ithome.com.tw/upload/images/20181024/20102269mXUOPAj0M4.png


小結

更多細節可以到官方文件查看,明天會開始說明tornado的基本操作。


上一篇
三十天全端學習(javascript、python、mongoDB)---第十四天:python驅動mongoDB (II)
下一篇
三十天全端學習(javascript、python、mongoDB)---第十六天:python tornado後台架設 (II)
系列文
三十天全端學習:透過javascript(Onsen UI)、python(tornado)、非關聯式資料庫(mongoDB)完成全端學習,建置web app、mobile app。30

尚未有邦友留言

立即登入留言