天天看點

14 Django視圖 - 視圖函數

定義視圖

本質就是一個函數

視圖的參數

  • 一個HttpRequest執行個體
  • 通過正規表達式組擷取的位置參數
  • 通過正規表達式組獲得的關鍵字參數

在應用目錄下預設有views.py檔案,一般視圖都定義在這個檔案中

如果處理功能過多,可以将函數定義到不同的py檔案中

建立views1.py
#coding:utf-8
from django.http import HttpResponse
def index(request):
    return HttpResponse("你好")

在urls.py中修改配置
from . import views1
url(r'^$', views1.index, name='index'),
      

錯誤視圖

Django原生自帶幾個預設視圖用于處理HTTP錯誤

404 (page not found) 視圖

  • defaults.page_not_found(request, template_name=‘404.html’)
  • 預設的404視圖将傳遞一個變量給模闆:request_path,它是導緻錯誤的URL
  • 如果Django在檢測URLconf中的每個正規表達式後沒有找到比對的内容也将調用404視圖
  • 如果在settings中DEBUG設定為True,那麼将永遠不會調用404視圖,而是顯示URLconf 并帶有一些調試資訊
  • 在templates中建立404.html
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
找不到了
<hr/>
{{request_path}}
</body>
</html>
      
DEBUG = False
ALLOWED_HOSTS = ['*', ]
      
http://127.0.0.1:8000/test/
      

500 (server error) 視圖

  • defaults.server_error(request, template_name=‘500.html’)
  • 在視圖代碼中出現運作時錯誤
  • 預設的500視圖不會傳遞變量給500.html模闆
  • 如果在settings中DEBUG設定為True,那麼将永遠不會調
  • 505視圖,而是顯示URLconf 并帶有一些調試資訊

400 (bad request) 視圖

  • defaults.bad_request(request, template_name=‘400.html’)
  • 錯誤來自用戶端的操作
  • 當使用者進行的操作在安全方面可疑的時候,例如篡改會話cookie
上一篇: 視圖
下一篇: 視圖

繼續閱讀