Django類方式寫view

2022-05-17 05:13:22 字數 1113 閱讀 6176

問題:

django官方教程中都是通過def函式方式來寫view,如何通過類方式寫view以及為何要通過類方式寫view?

那,如何解決這個問題?

使用者訪問瀏覽器,一般兩種方式,get獲取網頁和post提交資料,get也可以提交資料,以一種明文形式顯示在url中,post提交的資料url中不顯示,一種安全的資料提交方式,get方式提交資料一般應用於一些排序方式和類別過濾中,post用於使用者提交的表單資料,比較隱私的資料,get方式提交資料為小資料資訊,而post方式提交資料可以是大資料資訊

匯入view基類

寫乙個view類,繼承view基類,下面有兩個方法,get和post方法

在urls中通過類方法.as_view() 方式 呼叫這個view類

通過前端提交資料的方式,採用不同的方法,實現url復用,也就是或get和post共用乙個url,如果函式方式寫view需要寫判斷提交方式邏輯,還有類實現了很好的封裝,而函式沒有,很容易被其他函式影響

__author__ = 'beimenchuixue'

__blog__ = ''

# 匯入view基類

from django.views.generic.base import view

# 匯入模版渲染函式

from django.shortcuts import render

# 這個是使用者登入的驗證類

class loginview(view):

"""登入驗證"""

# get方式獲login頁面

def get(self, request):

return render(request, 'login.html', {})

# 使用者提交表單,返回主頁

def post(self, request):

"""提交表單"""

return render(request, 'index.html', {})

urls中,匯入loginview,呼叫.as_view方法

url(r'^login/$', loginview.as_view(), name='login')

View的移動方式

android 3.0以後加入x,y,translationx,translationy等引數。x,y 表示為view在viewgroup中左上角的x,y的值,translationx,translationy在用於平移乙個view。預設是都為0,在呼叫了view的settranslationx s...

django基礎之urls及view

環境為 python 3.x django 1.11,若安裝的 django 版本不一致,可先解除安裝然後指定版本安裝。解除安裝 pip uninstall django 指定版本安裝 pip install django 1.11 django 使用 mvc mtv 模式,其本質是為了保持各元件之...

Django 基礎二 View和urls

的web開發了.首先進入專案的主目錄 cd djangolearn hollow world 新建完成之後,可以看到當前目錄多了乙個叫myblog的檔案目錄.django.contrib.auth django.contrib.contenttypes django.contrib.sessions...