View
基于主类的基本视图。所有其他基于类的视图都从该基类继承。严格来说,它不是通用视图,因此也可以从导入django.views
。
示例views.py:
from django.views import View
class MyView(View):
def get(self, request, *args, **kwargs):
return HttpResponse('Hello, World!')
示例urls.py:
from myapp.views import MyView
urlpatterns = [
path('mine/', MyView.as_view(), name='my-view'),
]
属性
http_method_names
该视图将接受的HTTP方法名称的列表。
默认值:
['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
方法
classmethod as_view
(** initkwargs)
返回一个接受请求并返回响应的可调用视图:
response = MyView.as_view()(request)
TemplateView
示例views.py
from django.views.generic.base import TemplateView
from articles.models import Article
class HomePageView(TemplateView):
template_name = "home.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['latest_articles'] = Article.objects.all()[:5]
return context
示例urls.py:
from django.urls import path
from myapp.views import HomePageView
urlpatterns = [
path('', HomePageView.as_view(), name='home'),
]