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...