FBV模式 def cookie(func):       def deco(request,*args,**kwargs):             u = request.get_signed_cookie('username', salt='user', default=None)           if not u:               return render(request,'login.html')           return func(request,*args…
CBV 基于类的视图  FBV 基于函数的视图 CBV: 1 项目目录下: 2 urlpatterns = [ 3 path('login1/',views.Login.as_view()) #.as_view()固定格式,自 4 ] 5 #.as_view()固定格式,自匹配类中的下面的方法(须自定制) 6 http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace'] 7 8…
FBV装饰器用户验证 CBV装饰器用户验证 装饰器位置 或 或…
Django中的CBV和FBV 一.  CBV CBV是采用面向对象的方法写视图文件. CBV的执行流程: 浏览器向服务器端发送请求,服务器端的urls.py根据请求匹配url,找到要执行的视图类,执行dispatch方法区分出是POST请求还是GET请求,执行views.py对应类中的POST方法或GET方法. 使用实例: urls.py path('login/',views.Login.as_view()) views.py from django import views #在views…
Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request请求对象方法,属性和Response响应对象,form表单的上传 一丶CBV和FBV       在Django中存在存在两种url和视图对应的形式:类和函数 CBV:类视图 ##### class based view 基于类 ### 出版社添加 urls.py中填写url和类的对应关系. #PublishAdd是类,要执行as_view()方法 url('^publish_add',views.Publish…
Cookie Session和自定义分页   cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况. 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的. 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留.会话中产生的数据又是我们需要保存的,也就是说要“保持状态”…
我们之前写过的是基于函数的view,就叫FBV.还可以把view写成基于类的. 1. FBV版 def add_class(request): if request.method == "POST": class_name = request.POST.get("class_name") models.Classes.objects.create(name=class_name) return redirect("/class/") return…
django中间件 中间件介绍 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出.每个中间件组件都负责做一些特定的功能. 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能…
1. 为了返回给网页前端的格式统一,定义一个通用的插件类,返回统一格式数据 # enconding:utf-8 """ 定义一个插件类, """ from django.http import JsonResponse,HttpResponse # 自定义状态码 class HttpCode(object): # 正常登陆 ok = 200 # 参数错误 paramserror = 400 # 权限错误 unauth = 401 # 方法错误 m…
下面是3种方式: from django.shortcuts import render, redirect from django.views import View # Create your views here. class Login(View): def get(self, request): return render(request, 'login.html') def check_login(func): def inner(request, *args, **kwargs):…