什麼是django生命週期
django的生命週期是:前端請求--->nginx--->uwsgi.--->中介軟體--->url路由---->view試圖--->orm---->拿到資料返回給view---->試圖將資料渲染到模版中拿到字串---->中介軟體--->uwsgi---->nginx---->前端渲染。
中介軟體的作用非常大,可以處理所有的請求內容,中介軟體其實就是一個類,這個類中一共有5個方法,
分別是
process_request,
process_response,
process_view,
process_exception,
process_render_template,
下面說一下它的運算順序
當一個請求,首先從上往下執行這些類中process_request方法,之後進入django的從上往下執行每個類中的process_view方法,在然後就進入我們自定義的view.py檔案,如果你的試圖中有錯誤,那就會從下往上執行中介軟體中的process_exception方法,然後把錯誤資訊在透過process_response中返回給客戶端。
process_request:在這個方法中是沒有return方法的,如果有那就會執行process_response方法,直接返回給客戶端,一般情況下我們是不會在這裡返回內容的,除非你有需求,判斷髮過來的請求過來的內容,如果不是很友好的請求,那麼我們直接就可以在這返回,直接卡死,讓這個請求直接都進不了我們的django中的內部程式,
process_response:在這個方法中我們必須要有return方法,這樣才能一步一步的返回給客戶端,當然你也可以寫一些東西在response裡,在這裡寫就是會在所有的response裡都會有你所新增的內容!
process_view:這個方法中是沒有return方法的,如果有那就走process_response方法;
process_exception:在這個方法中是一定要有return方法的,這個方法是專門返回你的錯誤資訊的,我可以在所有的檢視函式只要出現錯誤就會執行這個方法,可以返回一個錯誤模版資訊!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2836884/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Django ORM 資料庫生命週期DjangoORM資料庫
- Django(47)drf請求生命週期分析Django
- Django(35)Django請求生命週期分析(超詳細)Django
- Django元件---Django請求生命週期和中介軟體Django元件
- Python中名稱空間是什麼?名稱空間生命週期是多久?Python
- 生命週期
- 為什麼 bindService 能和 Activity 的生命週期聯動?
- JavaScript變數的生命週期:為什麼let不被提升JavaScript變數
- View生命週期與Activity生命週期的關係View
- PHP 生命週期PHP
- Flutter - 生命週期Flutter
- sessionStorag 生命週期Session
- Fragment生命週期Fragment
- Activity生命週期
- vue - 生命週期Vue
- React生命週期React
- ubuntu生命週期Ubuntu
- React 生命週期React
- vue生命週期Vue
- Salesforce 生命週期管理(一)應用生命週期淺談Salesforce
- Activity生命週期onDestroy
- Flutter -- Element生命週期Flutter
- Flutter 的生命週期Flutter
- SQL的生命週期SQL
- java servlet 生命週期JavaServlet
- React-生命週期React
- vue 生命週期梳理Vue
- Laravel的生命週期Laravel
- 理解VUE生命週期Vue
- React 元件生命週期React元件
- Laravel框架生命週期Laravel框架
- ReactNative 生命週期React
- vue的生命週期Vue
- JSP生命週期JS
- React元件生命週期React元件
- vue 生命週期深入Vue
- Fragment的生命週期Fragment
- iOS App生命週期iOSAPP