新聞中心
之前經(jīng)過很多關(guān)于python tornado的知識,小編來考考大家,視圖是什么呢?想好答案的小伙伴也不著急回答,我們帶著問題一起往下看。

盡管經(jīng)歷了在 Python 中討論異步的所有麻煩,我們還是決定暫不使用它。先來編寫一個基本的 Tornado 視圖。
與我們在 Flask 和 Pyramid 實(shí)現(xiàn)中看到的基于函數(shù)的視圖不同,Tornado 的視圖都是基于類的。這意味著我們將不在使用單獨(dú)的、獨(dú)立的函數(shù)來規(guī)定如何處理請求。相反,傳入的 HTTP 請求將被捕獲并將其分配為我們定義的類的一個屬性。然后,它的方法將處理相應(yīng)的請求類型。
讓我們從一個基本的視圖開始,即在屏幕上打印 “Hello, World”。我們?yōu)?Tornado 應(yīng)用程序構(gòu)造的每個基于類的視圖都必須繼承 tornado.web 中的 RequestHandler 對象。這將設(shè)置我們需要(但不想寫)的所有底層邏輯來接收請求,同時構(gòu)造正確格式的 HTTP 響應(yīng)。
from tornado.web import RequestHandler
class HelloWorld(RequestHandler):
"""Print 'Hello, world!' as the response body."""
def get(self):
"""Handle a GET request for saying Hello World!."""
self.write("Hello, world!")因?yàn)槲覀円幚?GET 請求,所以我們聲明(實(shí)際上是重寫)了 get 方法。我們提供文本或 JSON 可序列化對象,用 self.write 寫入響應(yīng)體。之后,我們讓 RequestHandler 來做在發(fā)送響應(yīng)之前必須完成的其它工作。
就目前而言,此視圖與 Tornado 應(yīng)用程序本身并沒有實(shí)際連接。我們必須回到 __init__.py,并稍微更新 main 函數(shù)。以下是新的內(nèi)容:
# __init__.py
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options
from tornado.web import Application
from todo.views import HelloWorld
define('port', default=8888, help='port to listen on')
def main():
"""Construct and serve the tornado application."""
app = Application([
('/', HelloWorld)
])
http_server = HTTPServer(app)
http_server.listen(options.port)
print('Listening on http://localhost:%i' % options.port)
IOLoop.current().start()以上就是python tornado視圖的詳解及用法。更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
新聞名稱:創(chuàng)新互聯(lián)Python教程:pythontornado視圖是什么?怎么用?
轉(zhuǎn)載注明:http://m.fisionsoft.com.cn/article/dhoejho.html


咨詢
建站咨詢
