django在中間件中預設了6個方法,這6個方法區別在於不一樣的階段執行,對輸入或輸出進行干預,方法以下:html
#1 初始化: 無需任何參數,服務器響應第一個請求的時候調用一次,用於肯定是否啓用當前中間件
def __init__():
pass
#2.處理請求前:在每一個請求上調用,返回None或者HttpResponse 對象
def process_response(request):
pass
#3 處理視圖前,在每一個請求上調用,返回None 或HttpResopnse對象
def process_view(request.view_func, view_args, view_kwargs):
pass
#4 處理模板響應前: 在每一個請求上調用,返回實現render 方法的響應對象
def peocess_template_response(request, response):
pass
#5 處理響應後,多有響應返回瀏覽器以前被調用,每一個請求上調用,返回HttpResponse對象
def process_response(request, response):
pass
#6 異常處理:當時圖拋出異常時調用,在每一個請求上調用,返回一個HttpResponse對象
def process_exception(request, execption):
pass
複製代碼
Django源自一個在線新聞 Web站點,於 2005 年以開源的形式被釋放出來。python
Django 框架的核心組件有:c++
用於建立模型的對象關係映射爲最終用戶設計的完美管理界面一流的 URL 設計設計者友好的模板語言緩存系統等等程序員
它鼓勵快速開發,並遵循MVC設計。web
Django遵照 BSD版權,最新發行版本是Django1.4,於2012年03月23日發佈.Django的主要目的是簡便、快速的開發數據庫驅動的網站。它強調代碼複用,多個組件能夠很方便的以「插件」形式服務於整個框架,Django有許多功能強大的第三方插件,你甚至能夠很方便的開發出本身的工具包。這使得Django具備很強的可擴展性。它還強調快速開發和DRY(Do Not RepeatYourself)原則。面試
Tornado是 FriendFeed使用的可擴展的非阻塞式 web 服務器及其相關工具的開源版本。這個 Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過爲了能有效利用非阻塞式服務器環境,這個 Web 框架還包含了一些相關的有用工具和優化。數據庫
Tornado 和如今的主流 Web 服務器框架(包括大多數Python 的框架)有着明顯的區別:它是非阻塞式服務器,並且速度至關快。得利於其 非阻塞的方式和對epoll的運用,Tornado 每秒能夠處理數以千計的鏈接,這意味着對於實時 Web服務來講,Tornado 是一個理想的 Web 框架。咱們開發這個 Web 服務器的主要目的就是爲了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用裏每個活動用戶都會保持着一個服務器鏈接。(關於如何擴容 服務器,以處理數以千計的客戶端的鏈接的問題。django
她專科學歷 27歲從零開始學習c,c++,python編程語言 29歲編寫百例教程 30歲掌握10種編程語言, 用自學的經歷告訴你,學編程就找夢想橡皮擦編程
歡迎關注她的公衆號,搜索— 非本科程序員json