这在 Django 中被支持为基于类的视图。您可以扩展泛型类View
并添加方法,如,get()
等。例如 -post()
put()
from django.http import HttpResponse
from django.views.generic import View
class MyView(View):
def get(self, request, *args, **kwargs):
return HttpResponse('This is GET request')
def post(self, request, *args, **kwargs):
return HttpResponse('This is POST request')
类中的dispatch()
方法View
处理这个 -
调度(请求,*args,**kwargs)
视图的视图部分——接受请求参数和参数并返回 HTTP 响应的方法。
默认实现将检查 HTTP 方法并尝试委托给与 HTTP 方法匹配的方法;GET 将委托给 get(),POST 委托给 post(),依此类推。
默认情况下,HEAD 请求将委托给 get()。如果您需要以不同于 GET 的方式处理 HEAD 请求,您可以覆盖 head() 方法。有关示例,请参阅支持其他 HTTP 方法。
默认实现还将 request、args 和 kwargs 设置为实例变量,因此视图上的任何方法都可以了解调用视图的请求的全部细节。
然后你可以使用它urls.py
-
from django.conf.urls import patterns, url
from myapp.views import MyView
urlpatterns = patterns('',
url(r'^mine/$', MyView.as_view(), name='my-view'),
)