zoukankan      html  css  js  c++  java
  • 一些面试题目

    django中间件有几个方法,分别是什么,流程,应用

    中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出

    • process_request(self,request)
    • process_view(self, request, view_func, view_args, view_kwargs)
    • process_template_response(self,request,response)
    • process_exception(self, request, exception)
    • process_response(self, request, response)

    流程

     用户发送请求,如果通过process_request,执行url路由匹配,在执行process_view,通过view就执行视图函数函数,执行process_response,期间返回有模板就走process_temelate_response,报错就走process_exception

    应用

    权限设置,用户登录验证,csrf_oken

    当网站多数请求需要csrf认证,少数视图不需要验证的时候,可以在不需要csrf认证的视图上边加装饰器

    from django.views.decorators.csrf import csrf_exempt,csrf_protect
    @csrf_exempt  # 下边的函数免除csrf认证,不注销setting里边的csrf功能
    def get_list(request):
        list = [1, 2, 3, 4, 5, 6]
        return HttpResponse(json.dumps(list))

    反之,网站中只有几个函数需要认证csrf的时候,可以把setting中的csrf的中间件注释,为要认证的函数加装饰器

    from django.views.decorators.csrf import csrf_protect
    @csrf_protect
    def get_list(request):
        list = [1, 2, 3, 4, 5, 6]
        return HttpResponse(json.dumps(list))

    在CBV中如何不注释setting中的csrf使指定方法跳过csrf认证

    第一种方法,在类下边的dispatch方法上边加装饰器,把csrf_exempt当参数传进去

    from django.views import View
    from django.views.decorators.csrf import csrf_exempt
    from django.utils.decorators import method_decorator
    
    class ApiTest(View):  # 必须继承django中的View类
        @method_decorator(csrf_exempt)  # 跳过csrf认证
        def dispatch(self, request, *args, **kwargs):
            return super(ApiTest, self).dispatch(request, *args, **kwargs)

    第二种方法,在类的上边加装饰器

    from django.views import View
    from django.views.decorators.csrf import csrf_exempt
    from django.utils.decorators import method_decorator
    
    
    @method_decorator(csrf_exempt, name="dispatch")  # name表达类中的方法名字
    class ApiTest(View):  # 必须继承django中的View类
    
        def dispatch(self, request, *args, **kwargs):
            return super(ApiTest, self).dispatch(request, *args, **kwargs)

    谈谈你对resetful api规范的认识

    本质上就是一个规范,让我们写api 的时候更好的和前端配合,方便处理数据,在api上可以体现出对资源的操作。

    有10个规则

    跨域jsonp

  • 相关阅读:
    prev()方法使用的注意点
    JS 获取图片的高度
    渐变色
    JS获取时间
    监听鼠标上下滚动事件
    几种常见的边框样式
    左侧导航背景颜色随机变化
    apache开启gzip压缩
    dedecms在linux上安装提示没权限解决办法
    阿里云centos7.3安装lamp环境
  • 原文地址:https://www.cnblogs.com/ligiao/p/11465636.html
Copyright © 2011-2022 走看看