首页 > TAG信息列表 > cbv
Django之csrf和cbv
csrf跨站请求伪造 介绍 1.简介 钓鱼网站:假设是一个跟银行一模一样的网址页面 用户在该页面上转账 账户的钱会减少 但是受益人却不是自己想要转账的那个人 2.模拟 一台计算机上两个服务端不同端口启动 钓鱼网站提交地址改为正规网站的地址 3.预防 csrf策略:通过在返回的页面上django中视图函数的FBV和CBV
1.什么是FBV和CBV FBV是指视图函数以普通函数的形式;CBV是指视图函数以类的方式。 2.普通FBV形式 def index(request): return HttpResponse('index') 3.CBV形式 3.1 CBV形式的路由 path(r'^login/',views.MyLogin.as_view()) 3.2 CBV形式的视图函数 from django.views import Vie9 FBV与CBV
1 FBV :function based view 基于函数实现的视图逻辑 2 CBV:class based view 基于类实现的视图逻辑 1 前后端分离模式 在开发Web应用中,有两种应用模式: 1.前后端不分离[客户端看到的内容和所有界面效果都是由服务端提供出来的。] 2.前后端分离【把前端的界面效果(html,css,js分离45.Django的FBV与CBV模式
FBV 是 function based views 的英文缩写,顾名思义代表的是基于函数的视图,在以前的我们编写的代码中,在 views.py 文件编写的都是这类视图函数,相信大家对这种编写视图函数的方式已经比较的熟悉。在本节我们将介绍另一种吧编写视图函数的方式,即 CBV (class based views)基于类的视路由组件
目录路由组件SimpleRouterDefaultRouteraction装饰器 路由组件 在使用CBV继承ViewSetMixin及其子类时,路由需要我们配置映射关系,手动配置过于麻烦,DRF提供了路由组件自动生成5个映射关系。 SimpleRouter 方式一: from rest_framework.routers import SimpleRouter # 实例化 router =django虚拟环境搭配与切换 视图函数view的返回值 JsonResponse对象、FBV与CBV、CBV源码剖析、模板语法传值
概要 作业讲解 虚拟环境 django路由层版本区别 视图函数的返回值 JsonResponse对象 接收文件数据 FBV与CBV(基于函数func的视图 基于类class的视图) CBV源剖析(学习查看django源码) 模板语法传值 内容详细 1.作业:使用无名有名反向解析完成用户数据的编辑和删session+CBV装饰器+中间件+csrf
目录django操作session设置获取补充CBV添加装饰器直接在类中的某个方法上添加直接在类名上添加并指定重写dispatch方法并添加装饰器(作用于类中所有的方法)中间件自定义中间件掌握的方法了解的方法csrf(跨站请求伪造)解决策略form表单ajax请求 django操作session 服务端保存用户相创建虚拟环境 django路由层版本区别 视图函数的返回值 JsonResponse对象 接收文件数据 FBV与CBV(基于函数的视图、基于类的视图) CBV源剖析(学习查看源码) 模板
day 53 作业讲解 需求: 1.使用无名有名反向解析完成用户数据的编辑和删除功能 提示:用户数据使用表格标签展示 然后每一行放编辑和删除按钮 点击编辑按钮进入编辑页面 修改数据 点击删除按钮 直接删除数据并刷新页面 1.数据展示 2.给按钮附加功能 3.如何明Django微讲解(四)
Django微讲解(四) 虚拟环境 在实际开发项目工作中,针对不同的项目需要为其配备对应的解释器环境,为了无障碍的打开并运行,我们有两种办法,方式一:把 所有需要用到的模块全部下载下来,如果有相同模块不同版本每次都重新下载替换;很明显方式一是不可取的,所以还有第二种方式:提前准 备好多Django框架04
虚拟环境 Django的版本区别 视图函数的返回值 JsonResponse对象 form表单上传文件 request其他方法 FBV与CBV CBV源码剖析 模板语法传值虚拟环境、视图层、FBV与CBV
虚拟环境 我们在实际开发工作中 针对不同的项目需要为其配备对应的解释器环境 eg: 项目1 django2.2 pymysql3.3 requests1.1 项目2 django1.1 项目3 flask 诸多项目在你的机器上如何无障碍的打开并运行 方式1:把所有需要用到的模块CBV如何添加装饰器
from django.views import View from django.utils.decorators import method_decorator """ CBV中django不建议你直接给类的方法加装饰器 无论该装饰器能都正常给你 都不建议直接加 """ # @method_decorator(login_auth,name='get') # 方式2(可以添加多个针对不同的方法加不同FBV与CBV路由,CBV源码内部解析
FBV与CBV路由 视图函数既可以是函数也可以是类 def index(request): return HttpResponse('index') CBV路由 特点:能够直接根据请求方式的不同直接匹配到对应的方法执行 # CBV路由 url(r'^login/',views.MyLogin.as_view()) from django.views import View clasCBV和FBV
FBV FBV: function based view 就是平常在views.py中写的函数 from django.shortcuts import render, HttpResponse # Create your views here. from django.http import JsonResponse def test(request): user_dict = {'username': '阿飞', 'passwoDjangoCBV&FBV&模板层
看框架的源码很重要!!! 1. JsonResponse类 """ 视图函数中的返回值 HttpResponse render redirect 根据报错的反馈,证明他们本质上都是HttpResponse对象 # 参考源码就可以证明!! # """ # 1. 混合开发项目:前端页面和后端代码写到一起 # 2. 前后端分离项目:前端是一个项目,后端是一个项目,Django 视图 - FBV 与 CBV
FBV(function base views) 基于函数的视图,就是在视图里使用函数处理请求。 CBV(class base views) 基于类的视图,就是在视图里使用类处理请求。 FBV 基于函数的视图其实我们前面章节一直在使用,就是使用了函数来处理用户的请求,查看以下实例: 路由配置: urls.py 文件 urlpatterns = [csrf相关装饰器(视图类CBV如何添加装饰器)
网站整体不校验,只有几个需要校验 网站整体校验,只有几个不需要校验 CBV中加装饰器的三种方式 装饰器csrf_protect 装饰器csrf_exempt 在类中直接加在某个函数上 有效 无效 在类头顶上给某个函数加 有效 无效 给dispatch函数加 有效 有效 csrf_protect和csrf_exemptday08 Django视图层
三板斧 """ HttpResponse 返回字符串类型 render 返回html页面 并且在返回给浏览器之前还可以给html文件传值 redirect 重定向 """ # 视图函数必须要返回一个HttpResponse对象 正确 研究三者的源码即可得处结论 The view app01.views.index didn't return an HttpResponse oDjango 反向解析 request CBV
正则路径中的分组 无名分组 分组的概念:就是给某一段正则表达式用小括号括起来 无名分组按位置传参数,一一对应。 view中除去request,其他形参数量要与urls中分组数量一致。 无名分组就是将括号内匹配到的内容当作位置参数传递给后面的视图函数 urls.py: urlpatterns = [ url(r'^tes视图函数:CBV与FBV (ps:补充装饰器)
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', 'putday39.视图层(CBV和FBV、模板语法)
提高作业 # 源码只可以看 千万不要随意上手 xadmin iview (odoo框架) # stackoverflow from datetime import date,datetime,timedelta import json # current_time = date.today() # print(current_time + timedelta(days=-3)) class MyJsonEncode(json.JSONEncoder): def9 django CBV
1 修改views import hashlib import json from django.core import serializers from django.http import JsonResponse from django.utils.decorators import method_decorator # Create your views here. from django.views import View from user.models import User frDjango CBV模型源码运行流程详解
Django之CBV视图源码分析 1.首先我们先在urls.py定义CBV的路由匹配。 FBV的路由匹配: 2.然后,在views.py创建一名为MyReg的类: 注意:该类必须继续View类,且方法名必须与请求方式相同(后面会详解) 3.回到第一步的路由匹配可以看到MyReg.as_view(),直接调用了as_view函数。那么Django中的CBV视图
Web 开发是一项无聊而且单调的工作,特别是在视图功能编写方面更为显著。为了减少这种痛苦,Django植入了视图类这一功能,该功能封装了视图开发常用的代码,无须编写大量代码即可快速完成数据视图的开发,这种以类的形式实现响应与请求处理称为 CBV(Class Base Views)。 视图类是通过定flask路由之cbv
引子: 和django一样,flask也支持cbv 代码: # -*- coding: utf-8 -*- from flask import Flask,views app=Flask(__name__) def auth(func): def inner(*args,**kwargs): ret=func(*args,**kwargs) return ret return inner class IndexView