Django-CBV和FBV
来源:互联网 发布:辉素网络带练真的假的 编辑:程序博客网 时间:2024/06/08 10:48
CBV
# urls.pyfrom django.conf.urls import urlfrom django.contrib import adminfrom cbv import viewsurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^Login.html$', views.Login.as_view()),]
# views.pyfrom django.views import Viewclass Login(View):""""get 查post 提交 创建put 更新delete 删除"""" def get(self,request): return HttpResponse('Login...get') def post(self,request): user = request.POST.get('user') print(user) return HttpResponse('Login...post')
- dispatch 类似于装饰器的效果
# views.pyfrom django.shortcuts import render,redirect,HttpResponse# Create your views here.from django.views import Viewclass Login(View): def dispatch(self, request, *args, **kwargs): print('before') obj = super(Login,self).dispatch(request, *args, **kwargs) print('after') return obj def get(self,request): return HttpResponse('Login...get') def post(self,request): user = request.POST.get('user') print(user) return HttpResponse('Login...post')
- 给CBV加装饰器
在指定方法上装
from django.shortcuts import render,redirect,HttpResponse# Create your views here.from django.views import Viewfrom django.utils.decorators import method_decoratorimport timedef auth(func): def wrapper(*args,**kwargs): print(time.time()) return func(*args,**kwargs) return wrapperclass Login(View): def dispatch(self, request, *args, **kwargs): print('before') obj = super(Login,self).dispatch(request, *args, **kwargs) print('after') return obj @method_decorator(auth) def get(self,request): return HttpResponse('Login...get') @method_decorator(auth) def post(self,request): user = request.POST.get('user') print(user) return HttpResponse('Login...post')
在类上加
from django.shortcuts import render,redirect,HttpResponse# Create your views here.from django.views import Viewfrom django.utils.decorators import method_decoratorimport timedef auth(func): def wrapper(*args,**kwargs): print(time.time()) return func(*args,**kwargs) return wrapper# @method_decorator(auth,name='get')@method_decorator(auth,name='dispatch')class Login(View): def dispatch(self, request, *args, **kwargs): print('before') obj = super(Login,self).dispatch(request, *args, **kwargs) print('after') return obj def get(self,request): return HttpResponse('Login...get') def post(self,request): user = request.POST.get('user') print(user) return HttpResponse('Login...post')
*Django 中 的一个bug,csrf_protect装饰器只能在类上添加
from django.shortcuts import render,redirect,HttpResponse# Create your views here.from django.views import Viewfrom django.utils.decorators import method_decoratorfrom django.views.decorators.csrf import csrf_exempt,csrf_protectimport timedef auth(func): def wrapper(*args,**kwargs): print(time.time()) return func(*args,**kwargs) return wrapper@method_decorator(csrf_protect,name='get')class Login(View): def dispatch(self, request, *args, **kwargs): print('before') obj = super(Login,self).dispatch(request, *args, **kwargs) print('after') return obj def get(self,request): return HttpResponse('Login...get') def post(self,request): user = request.POST.get('user') print(user) return HttpResponse('Login...post')
阅读全文
0 0
- Django-CBV和FBV
- django -- cbv,fbv,中间件
- Django框架学习笔记(6.FBV和CBV简单介绍)
- FBV与CBV的使用规则
- Django 1.5 CBV
- fbv-conv的用法
- 交叉编译fbv图片浏览器
- 静态编译fbv --测试LCD
- 交叉编译framebuff图片浏览工具fbv
- Django PYTHONPATH 和 DJANGO_SETTINGS_MODULE
- 安装Python和Django
- 安装Python和Django
- 安装Python和Django
- wsgi, flup和Django
- Django和Mezzanine初探
- Apache和Django整合
- django cookies 和 session
- Django视图和网址
- Xmarin.Forms 基础——Behaviors
- 【深度学习】【caffe实用工具3】笔记25 Windows下caffe中将图像数据集合转换为DB(LMDB/LEVELDB)文件格式之convert_imageset
- HTTP请求json文件出现中文乱码的解决方案
- hdu6060 RXD and dividing
- 详解 pkg-config 作用
- Django-CBV和FBV
- java.lang.ClassNotFoundException怎么解决
- linux初学者-DDNS配置篇
- 与函数有关面试题(一)
- ClassLoader之热修复
- Python装饰器
- Xamrin.Forms 基础——Behaviors——介绍
- 编译器
- linux中的genewise安装