tornado框架介紹

2021-09-07 10:03:22 字數 2939 閱讀 5846

tar xvzf tornado-1.2.1.tar.gz

cd tornado-1.2.1

python setup.py build

sudo python setup.py install

安裝要求:需要先安裝:python2.7

mac os x 10.6 (python 2.6+)

sudo easy_install setuptools pycurl

ubuntu linux (python 2.6+)

sudo apt-get install python-pycurl

ubuntu linux (python 2.5)

sudo apt-get install python-dev python-pycurl python-******json

安裝過程:

開始安裝:

#先檢查是否是python2.7

c:\tornado-1.2.1>python

python 2.7.13 (v2.7.13:a06454b1afa1, dec 17 2016, 20:53:40) [msc v.1500 64 bit (amd64)] on win32

>>> exit()

#開始安裝

c:\tornado-1.2.1>python setup.py build

c:\tornado-1.2.1>python setup.py install

tornado:

1. 版本 4.4

要求:1.2.1

環境:python2.7

2. 原始碼分析流程:

- 載入路由關係

- 載入配置檔案

- 啟動socket

作業:經歷的類

建立物件後,物件中大概封裝了

類中的方法的執行流程

b. 使用者髮請

- 匹配路由

- 執行指定類的方法

c. 非同步非阻塞

三、簡單介紹tornado的使用

示例:

**:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import tornado.ioloop

import tornado.web

class mainhandler(tornado.web.requesthandler):

def get(self):

self.write("hello, world")

class loginhandler(tornado.web.requesthandler):

def get(self):

# self.write("請登入")

self.render("login.html")

def post(self, *args, **kwargs):

v = self.get_argument('username')

print(v)

self.redirect('/index.html')

settings =

(r"/login.html", loginhandler),

(r"/index.html", mainhandler),

],**settings)

# (r"/login.html", loginhandler),

# (r"/index.html", mainhandler),

# ])

if __name__ == "__main__":

# 建立socket物件

# sock = socket.socket()

# inputs = [socket,]

# 開啟 r,w,e = select.select(inputs,)

tornado.ioloop.ioloop.instance().start()

login.html

用執行python程式的方法執行,注意監聽的埠。

執行結果:

上圖是tornado程式啟動以及接收到客戶端請求後的整個過程,對於整個過程可以分為兩大部分:

簡而言之:

1、在啟動程式階段,第一步,獲取配置檔案然後生成url對映(即:乙個url對應乙個xxrequesthandler,從而讓xxrequesthandler來處理指定url傳送的請求);第二步,建立伺服器socket物件並新增到epoll中;第三步,建立無線迴圈去監聽epoll。

2、在接收並處理請求階段,第一步,接收客戶端socket傳送的請求(socket.accept);第二步,從請求中獲取請求頭資訊,再然後根據請求頭中的請求url去匹配某個xxrequesthandler;第三步,匹配成功的xxrequesthandler處理請求;第四步,將處理後的請求傳送給客戶端;第五步,關閉客戶端socket。

本篇的內容主要剖析【啟動程式階段】,下面我們就來一步一步的剖析整個過程,在此階段主要是有下面重點標註的三個方法來實現。

tornado框架SQLAlchemy的操作

在用到python的一些框架裡,需要進行前後端資料互動,其中資料庫的連線是必不可少的,之前自己使用sqlalchemy在進行資料庫連線時遇到了很多問題,以及一些流程不是很清楚。所以花了點時間進行了一下流程梳理。1.首先建立乙個空py檔案 這裡命名為connect.py 匯入包 from sqlalc...

Tornado 框架的使用

tornado是乙個輕量級python的web框架,他是非阻塞式的,而且速度非常快.得利於其 非阻塞的方式和對 epoll 的運用,tornado 每秒可以處理數以千計的連線,這意味著對於實時 web 服務來說,tornado 是乙個理想的 web 框架。usr bin env python cod...

python web框架之Tornado的簡單使用

python web框架有很多,比如常用的有django,flask等。今天主要介紹tornado tornado是乙個用python寫的相對簡單的 不設障礙的web伺服器架構,用以處理上萬的同時的連線口,讓實時的web服務通暢起來。雖然跟現在的一些用python寫的web架構相似,比如django...