1. 程式人生 > >Django入門-6:檢視定義和錯誤檢視

Django入門-6:檢視定義和錯誤檢視

定義檢視

  1. 本質就是一個函式
  2. 檢視的引數
    1. 一個HttpRequest例項
    2. 通過正則表示式組獲取的位置引數
    3. 通過正則表示式組獲得的關鍵字引數
  3. 在應用目錄下預設有views.py檔案,一般檢視都定義在這個檔案中
  4. 如果處理功能過多,可以將函式定義到不同的py檔案
    1. 新建views1.py
    2. #coding:utf-8
    3. from django.http importHttpResponse
    4. def index(request):
    5. returnHttpResponse("你好")
    6. urls.py中修改配置
    7. from .import views1
    8. url(r'^$', views1.index, name='index'),

錯誤檢視

  1. Django原生自帶幾個預設檢視用於處理HTTP錯誤

404 (page not found) 檢視

  1. defaults.page_not_found(request, template_name='404.html')
  2. 預設的404檢視將傳遞一個變數給模板:request_path,它是導致錯誤的URL
  3. 如果Django在檢測URLconf中的每個正則表示式後沒有找到匹配的內容也將呼叫404檢視
  4. 如果在settingsDEBUG設定為True,那麼將永遠不會呼叫404檢視,【正式環境設定為False】
  5. 而是顯示URLconf並帶有一些除錯資訊
  6. templates中建立404.html
  7. 在setting.py中設定
    templates的路徑
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <title></title>
    5. </head>
    6. <body>
    7. 找不到了
    8. <hr/>
    9. {{request_path}}
    10. </body>
    11. </html>
  • 在settings.py中修改除錯
    1. DEBUG =False
    2. ALLOWED_HOSTS =['*',]
  • 請求一個不存在的地址
    1. http://127.0.0.1:8000/test/

500 (server error) 檢視

  1. defaults.server_error(
    request, template_name='500.html')
  2. 在檢視程式碼中出現執行時錯誤
  3. 預設的500檢視不會傳遞變數給500.html模板
  4. 如果在settingsDEBUG設定為True,那麼將永遠不會呼叫505檢視,
  5. 而是顯示URLconf並帶有一些除錯資訊

400 (bad request) 檢視

  1. defaults.bad_request(request, template_name='400.html')
  2. 錯誤來自客戶端的操作
  3. 當用戶進行的操作在安全方面可疑的時候,例如篡改會話cookie