Django base view

时间:2023-03-09 22:31:45
Django base view

class django.views.generic.base.View

它是基类的基类,其它View基类都是从这继承的。

官例:

from django.http import HttpResponse
from django.views.generic import View
class MyView(View):
def get(self, request, *args, **kwargs):
return HttpResponse('Hello, World!')
from django.conf.urls import url
from myapp.views import MyView
urlpatterns = [
url(r'^mine/$', MyView.as_view(), name='my-view'),
]

属性:

1.http_method_names:

这个视图类接受的http方法的列表,默认情况是:['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']

方法:

1.as_views():返回一个可调用的视图,需要request参数

如:response = MyView.as_view()(request)

2.dispatch(request, *args, **kwargs)

接受request及其他参数,返回一个http响应,默认的接口会检查http的方法,再委派一个方法对应发出请求的http方法,比如:GET方法对就的会用get(),Post方法会用post(),注意,HEAD方法会用get()对应,如果你不想用get()方法来处理,那么你应该定制head()方法。

3.dispatch(request, *args, **kwargs)

当视图收到一个它不支持的Http 方法时,会调用这个方法。默认情况下返回:HttpResponseNotAllowed,以及它允许的方法的文本。

4.options(request, *args, **kwargs)

处理请求,返回视图允许的Http方法以及它允许的header