這篇文章給大家分享的是有關python tornado視圖如何使用的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
盡管經歷了在 Python 中討論異步的所有麻煩,我們還是決定暫不使用它。先來編寫一個基本的 Tornado 視圖。
與我們在 Flask 和 Pyramid 實現中看到的基于函數的視圖不同,Tornado 的視圖都是基于類的。這意味著我們將不在使用單獨的、獨立的函數來規定如何處理請求。相反,傳入的 HTTP 請求將被捕獲并將其分配為我們定義的類的一個屬性。然后,它的方法將處理相應的請求類型。
讓我們從一個基本的視圖開始,即在屏幕上打印 “Hello, World”。我們為 Tornado 應用程序構造的每個基于類的視圖都必須繼承 tornado.web 中的 RequestHandler 對象。這將設置我們需要(但不想寫)的所有底層邏輯來接收請求,同時構造正確格式的 HTTP 響應。
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!")因為我們要處理 GET 請求,所以我們聲明(實際上是重寫)了 get 方法。我們提供文本或 JSON 可序列化對象,用 self.write 寫入響應體。之后,我們讓 RequestHandler 來做在發送響應之前必須完成的其它工作。
就目前而言,此視圖與 Tornado 應用程序本身并沒有實際連接。我們必須回到 __init__.py,并稍微更新 main 函數。以下是新的內容:
# __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視圖如何使用就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。