摘要:上一篇文章第三章概念及應用第三節客戶端編程下一篇文章第四章網站部署第二節靜態文件之前著重講解的編程知識點,所有之前的例子都使用最簡單的啟動方式運行。
上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第三節:客戶端編程
下一篇文章:Python:Tornado 第四章:Tornado網站部署:第二節:靜態文件
之前著重講解Tornado的編程知識點,所有之前的例子都使用最簡單的IOLoop啟動方式運行。本節學習如何優化Tornado的運行方式,以達到快捷、易用及資源利用優化的目的。
到目前為止,本章通過如下方式啟動tornado程序:
def make_app(): return tornado.web.Application([ #此處寫入映射 ]) def main(): app=make_app() #建立Application對象 app.listen(8888) #設置監聽端口 IOLoop.current().start() #啟動IOLoop if __name__ == "__main__": main()
通過這種方式啟動的程序一旦出錯,則只能通過Windows任務管理器或Linux命令行Kill掉Python進行。因為調試需要頻繁地進行:啟動→差錯→停止→排錯→重啟...的迭代流程,所以這樣簡單的方法并不利于程序調試,本節學習如何簡化調試流程。
1、自動加載通過向Application實例傳入參數debug=True,可以將程序以調試模式啟動,例如:
def make_app(): return tornado.web.Application([ #此處寫入映射 ], debug=True #調試模式 )
在這種模式下開發者可以獲得如下便利:
自動加載:對項目中任何*.py源文件的修改將導致程序自動重啟并加載修改后的代碼文件。這樣極大地簡化了開發者因為調試器需要頻繁重啟。
錯誤追溯:當RequestHandler;處理用戶訪問出現異常時,系統的錯誤信息調用棧將被推送到瀏覽器中,使得調試者可以馬上查找錯誤的根源。
禁用模板緩存:在運營環境中模板緩存能提高效率,但在調試期間占用了更多的系統資源,所以將其禁用有利于開發者進行調試。
注意:在運營環境中不要開啟Debug模式,這樣會增加網站被攻擊的危險。2、Ctrl+C退出機制
在默認情況下Tornado的IOLoop不會響應Linux控制臺的Ctrl+C命令,導致程序無法便捷地退出運行。
要響應Linux控制臺的Ctrl+C命令,則可以在運行中捕獲KeyboardInterrupt異常并調用IOLoop.stop()函數:
def main(): app=make_app() #建立Application對象 app.listen(8888) #設置監聽端口 try: #啟動IOLoop tornado.ioloop.IOLoop.current().start() except KeyboardInterrupt: tornado.ioloop.IOLoop.current().stop() #此處執行資源回收工作 print("Program exit!") if __name__ == "__main__": main()
這也在控制臺發送了Ctrl+C請求后,程序可有機會回收系統的其它資源并退出執行。
注意:在Windows平臺上,產生KeyboardInterrupt中斷的方式是Ctrl+Pause
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44796.html
摘要:提供了兩種方式進行配置靜態文件路徑與服務器本地路徑的關聯關系。通常這些靜態文件的目錄與網站的代碼文件有某種相對關聯關系,可以通過下面這樣的方法將該參數設置為相對路徑此處寫入映射即指定靜態目錄為本程序文件所在目錄的子目錄。 上一篇文章:Python:Tornado 第四章:Tornado網站部署:第一節:調試模式下一篇文章:Python:Tornado 第四章:Tornado網站部署:第...
摘要:上一篇文章第三章概念及應用第二節服務端編程下一篇文章第四章網站部署第一節調試模式由于是的標準之一,所以主流瀏覽器的客戶端編程語音已經支持的客戶端編程。此事件發生在收到了來自服務器的消息時。此事件發生在通信過程中有任何錯誤時。 上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第二節:服務端編程下一篇文章:Python:Tornado 第四章:T...
摘要:上一篇文章第四章網站部署第二節靜態文件后臺運行一般調試過程中我們使用運行網站,方便我們在命令行中看運行狀況。默認情況下,會監控子進程,并在任何程序意外終止時重生。配合實現多進程在中添加接受命令行參數可在配置文件中添加使用代理 上一篇文章:Python:Tornado 第四章:Tornado網站部署:第二節:靜態文件 1、后臺運行 一般調試過程中我們使用python app.py運行網...
摘要:上一篇文章第一章異步及協程基礎第三節協程下一篇文章第二章實戰演練開發網站第二節網站結構路由解析實例瀏覽器輸入鏈接頁面顯示下面逐行解析上面的代碼做了些什么首先通過語句引入包中的和類。該對象的第一個餐食用于定義程序的路由映射。 上一篇文章:Python:Tornado 第一章:異步及協程基礎:第三節:協程下一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第...
摘要:上一篇文章開篇下一篇文章第一章異步及協程基礎第二節關鍵字協程是種推薦的編程方式,使用協程可以開發出簡捷高效的異步處理代碼。同步操作,導致進程阻塞,直到操作完成異步操作,不會導致請求進程阻塞。 上一篇文章:Python:Tornado 開篇下一篇文章:Python:Tornado 第一章:異步及協程基礎:第二節:Python關鍵字yield 協程是Tornado種推薦的編程方式,使用協...
閱讀 2623·2023-04-26 00:07
閱讀 2431·2021-11-15 11:37
閱讀 639·2021-10-19 11:44
閱讀 2163·2021-09-22 15:56
閱讀 1717·2021-09-10 10:50
閱讀 1497·2021-08-18 10:21
閱讀 2565·2019-08-30 15:53
閱讀 1630·2019-08-30 11:11