Tornado路由

1.環境以及tornado安裝html

建立虛擬環境python

安裝tornado。具體實現步驟參考django安裝步驟linux

2.路由與tornado的啓動web

# 實現一個最簡單的tornado服務
import tornado.ioloop #監聽循環
import tornado.web #tornado包核心模塊
import tornado.httpserver #非阻塞服務器
import tornado.options #


class MainHandler(tornado.web.RequestHandler):

def get(self):
self.write('hello world')


application = tornado.web.Application(
handlers=[
(r'/',MainHandler), #路由表
]
#列表,列表中包含元組。配置路徑信息
) #實例化操做
#能夠傳入不少參數
#配置參數項

if __name__ == '__main__': #用來作測試,本身調用
tornado.options.parse_command_line() #打印請求信息(日誌信息),不加這一行後端不會有日誌信息
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8080) #監聽,綁定端口,服務器由主動變爲被動
tornado.ioloop.IOLoop.current().start() #開啓監聽循環

#單進程單線程epoll
#epoll ,主動監聽,把監聽的任務交給操做系統,不斷詢問。監聽循環

後端對應的日誌信息:django

指定端口訪問後端

運行時若是不指定端口,就有默認端口,若是想指定端口使用已指定的端口瀏覽器

# 實現一個最簡單的tornado服務
import tornado.ioloop #監聽循環
import tornado.web  #tornado包核心模塊
import tornado.httpserver  #非阻塞服務器
import tornado.options
from tornado.options import define,options  #指定端口傳參

define('port',default=8080,help='run server port',type=int)


class MainHandler(tornado.web.RequestHandler):

    def get(self):
        self.write('hello world')


application = tornado.web.Application(
    handlers=[
        (r'/',MainHandler),    #路由表
    ]
) 

if __name__ == '__main__':  #用來作測試,本身調用
    tornado.options.parse_command_line() #打印請求信息(日誌信息),不加這一行後端不會有日誌信息
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(options.port)  #監聽,綁定端口,服務器由主動變爲被動
    tornado.ioloop.IOLoop.current().start() #開啓監聽循環

#單進程單線程epoll
#epoll ,主動監聽,把監聽的任務交給操做系統,不斷詢問。監聽循環

訪問方式:服務器

(tornado_pro) pyvip@Vip:~/tornado_pro$ python 01-test.py --port=8000
[I 190326 23:57:26 web:2246] 200 GET / (10.0.2.2) 1.88ms
[W 190326 23:57:27 web:2246] 404 GET /favicon.ico (10.0.2.2) 0.82msapp

訪問結果以下:(訪問不通時,看是否作了端口映射)tornado

 

報錯解釋:

拒絕訪問:暫停訪問,服務未啓動

Not Found:找不到頁面,能夠訪問

 

輸入輸出:

輸出:write

輸入: http://127.0.0.1:8080/index?name=%20aaa 

get請求:url ?key=value&key1=value1

post請求:form表單中獲取。

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('hello world') #向瀏覽器輸出內容
        self.write('<br/>') # 頁面解析html代碼
        self.write('\n') #  頁面不能解析linux代碼,須要向瀏覽器輸出必須使用瀏覽器可以解析的代碼
        self.write('hello world')


class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        name = self.get_argument('name','no') #獲取頁面傳遞過來的參數(獲取輸入信息)
        self.write(name+' hello ')



application = tornado.web.Application(
    handlers=[
        (r'/', MainHandler),  # 路由表
        (r'/index', IndexHandler),
    ]

請求結果以下:

討論:get_argument與get_arguments的異同:

相關文章
相關標籤/搜索