视图函数,View
FBV - function based view
CBV - class based view
views.py
class MyView(View): # 默认支持options方法,作用是查询当前框架支持哪些请求方法。 # 最多支持这些方法:get、post、put、patch、delete、head、options、trace # 其他7种方法需要手写 info=None # urls.py路由中的参数要提前在类中定义 # 支持get就支持head def get(self,request): return HttpResponse(f‘get方法,{self.info}‘) def post(self,request): # 需要注释掉settings中的csrf中间件代码 return HttpResponse(‘post方法‘) def put(self,request): return HttpResponse(‘put方法‘) def patch(self,request): return HttpResponse(‘patch方法‘) def delete(self,request): return HttpResponse(‘delete方法‘) def head(self,request): # head方法只传头信息,这些消息体收不到。 return HttpResponse(‘head方法,自定义,不用get的方法‘) # def options(self,request): # return HttpResponse(‘自定义options方法‘) # postman里无trace方法 def trace(self,request): return HttpResponse(‘trace方法‘) # Django中不支持copy方法 def copy(self,request): return HttpResponse(‘postman里有的copy方法‘)
urls.py
# 相同路由,写在前面的有效,后面的不起作用。 path(‘myview/‘,views.MyView.as_view()), # 类中定义的参数路由中也可以不传,但不能传未定义的参数。 path(‘myview/‘,views.MyView.as_view(info=‘今天是个好天气‘)), # 传参必须提前在类为定义
原文:https://www.cnblogs.com/xiongjiawei/p/13768344.html