• 前端,DJ


    Vue模块

    1、Vue都有哪些指令,简单说说?

    """
    Vue里面常见指令有文本指令:v-text、v-html,属性指令:v-bind,方法指令:v-on,条件指令:v-if、v-show,循环指令:v-for
    
    v-html在v-text基础上,还可以解析html代码
    v-show是以display:none方式来渲染隐藏的标签,v-if会真的隐藏标签不渲染
    """
    

    2、简单聊一聊Vue组件化开发

    """
    Vue中的每一个组件就是一个vue实例,也就是vue对象。
    组件是由html、css、js组成的独立的页面结构单位,可以完成页面结构的代码复用
    一般我们先定义一个组件,然后在使用的父组件中注册,最后使用定义的组件
    定义组件template里写html,style中写样式,script中写逻辑
    """
    

    3、vue中你用过哪些第三方插件

    """
    vue中最常用的插件有
    管理路由的vue-router,管理组件间数据仓库的vuex
    还使用了vue-cookies来管理cookie,axios来完成前后台的ajax交互
    """
    

    drf模块

    1、什么是web接口,restful接口规范

    """
    web接口有四个特点:规定前后台的交互方式;请求的链接;请求的参数;响应的数据结果
    restful接口规范可以分三块来讲:请求链接,请求方式,响应结果
    	请求链接,采用https协议,带api字眼,操作的数据对象称之为资源,用资源名词即可,不需要出现动词,还可以出现一些接口版本的字眼v1,v2,还可以添加资源的过滤条件:limit、ordering
    	请求方式:get表示查,post表示增,put、patch表示改,delete表示删
    	响应结果:结果不同,状态码不同;结果中要有数据相关信息:数据状态码,数据信息,数据体;必要的时候,需要返回链接辅助下一次资源请求
    """
    

    2、drf中有哪些常用模块

    """
    drf中核心组件有:序列化组件、认证组件、权限组件、频率组件
    drf中还提供了 解析组件、响应组件、异常组件、分页器组件、过滤器组件等
    """
    

    3、说一说你都用过哪些序列化组件类

    """
    底层的Serializer类,和Model表结合使用的ModelSerializer类,还有处理群增全改接口的ListSerializer类
    """
    

    4、怎么样自定义序列化类

    """
    定义一个类,集成Serializer类或ModelSerializer类
    然后在子类Meta中,绑定model类,然后在设置序列化字段fields
    还可以写一堆局部全局钩子完成自定义校验规则
    """
    

    5、简述一下drf三大认证源码

    """
    drf的接口请求,需要先进行认证组件,校验得到登录用户,然后在进行权限组件,完成用户权限校验,最后进行频率组件,完成频率限制
    
    认证组件源码所干的事,就是从请求头中拿到认证token,如果没有,就不进行认证校验,直接去进行权限校验,如果有,校验提供就是合法用户,保存在request.user中,如果没有,直接抛异常返回到前台,就是非法用户
    
    权限组件源码所干的事,需要看哪个权限类,但都是挺简单的,IsAuthenticated就是校验是否有request.user,且是否能完成auth认证,IsAuthenticatedOrReadOnly就是先判断请求方式,get这类就不限制,post这些请求才需要进行校验,规则和IsAuthenticated一样
    
    频率组件源码很多,主要是根据用户特有的一些请求信息,如登录用户的主键,来记录用户访问的几次,访问后就会在django缓存cache中记录,在规定时间内,超次就会限制
    """
    

    6、如何自定义认证类

    """
    自定义认证类,继承BaseAuthentication(或其子类),重写authenticate
    在authenticate方法中中完成以下逻辑
    	从请求中拿到认证标识 token
    	反解析出用户 user
    	前两步操作失败 返回None,代表游客
    	前两步操作成功 返回user,auth,代表登录用户
    	注:如果在某个分支抛出异常,直接定义失败,代表非法用户
    """
    

    7、如何自定义权限类

    """
    自定义频率类,继承SimpleRateThrottle,重写get_cache_key,明确scope字符串
    
    在settings.py配置文件中的DEFAULT_THROTTLE_RATES配置scope字符串对应的限制条件,如:3/min(一分钟3次)
    
    在get_cache_key中返回作为限制标识的字符串
    """
    

    8、简述drf中的视图类

    """
    APIView是基础的视图类,完成基础的cbv的请求响应,比django的View类多了一堆类属性,比如authentication_classes就可以配置该视图类的认证器
    
    GenericAPIView继承APIView的,在APIView基础上,可以通过设置queryset、serializer_class两个类属性更好的配合model类完成资源的请求
    
    mixins中提供了一些视图类的工具方法,帮我们封装了基础的get、post这些请求动作
    
    viewsets视图集,重写了as_view方法,可以将get请求不再固定映射给get方法,可以映射给自定义方法
    """
    

    路飞模块

    1、简述git常用命令

    """
    查看状态:git status
    添加:git add .
    提交:git commit -m '信息'
    拉:git pull 源 分支
    推:git push 源 分支
    分支:git branch、git merge
    """
    

    2、简述前后台跨域问题

    """
    跨域本质是后台响应头出现了问题,做出的响应,前台无法解析
    
    如果前后台的请求协议、所在服务器(ip)、所属应用(端口),有一个不一致,就属于跨域
    """
    

    3、django如何解决跨域

    """
    可以用django-cors-headers模块来解决跨域,具体做法可以概括如下
    
    1、安装django-cors-headers模块
    
    2、在settings.py中配置
    # 注册app
    INSTALLED_APPS = [
    	...
    	'corsheaders'
    ]
    # 添加中间件
    MIDDLEWARE = [
    	...
    	'corsheaders.middleware.CorsMiddleware'
    ]
    
    # 允许跨域源
    CORS_ORIGIN_ALLOW_ALL = True
    """
    

    4、用过短信认证吗?简述一下

    """
    用过腾讯云的短信认证,根据官方的API来完成,安装短信认证的模块,可以实现单发短信,群发短信已经语音短信等功能,实现起来也挺简单,先申请签名与模板,然后配置好,得到发送对象,用发送对象调用特定的方法,就可以完成特定的功能
    """
    

    5、用过celery框架吗?

    """
    celery为异步任务框架,启动celery,会启动一个工作对象worker,会去任务队列中获取任务,然后执行,执行结果放到结果仓库中,所以任务队列和结果仓库都可以用效率高的数据库完成存储,我采用的是redis数据库。
    
    我用celery异步任务框架主要是来完成接口缓存的更新,已经支付成功后的短信推送
    """
    

    6、接口缓存是如何实现的?

    """
    首先我会对那些经常访问的,且数据一般不做更新的接口进行缓存,建立好缓存的key,采用redis数据库,工作原理就是先走缓存,缓存没有才走mysql数据库,同时建立缓存
    
    一般建立缓存的接口大多为主页固定展示的接口
    """
    

    7、简述一下你是如何完成短信推送的?

    """
    其实实现起来挺简单的,就是在用户完成支付后,支付宝会回调后台,通知支付成功,那在修改后台支付的订单状态后,在推送一条支付成功的短信给用户即可
    """
    

    8、讲述一下支付流程

    """
    支付流程可以分三块
    1、前台请求后台,提交订单信息,获得支付链接
    2、前台渲染支付链接,访问支付宝后台完成支付
    3、支付宝进行同步与异步回调,访问后台,在后台完成订单状态的修改,以及订单支付成功的推送
    """
    

    9、你了解支付宝的异步回调吗?

    """
    了解,支付宝的回调,会前后进行8次,第一次就是你在支付宝完成支付后,立即回调你的后台,然后在间隔时间回调你的后台,间隔时间逐渐增长,让你后台接收到支付成功的回调后,修改订单状态后,要响应字符串 Success,那么支付宝就知道你后台完成了订单状态的修改,就停止接下来的异步回调
    """
    

    10、你独立进行过项目上线吗?

  • 相关阅读:
    Java深入学习31:ArrayList并发异常以及解决方案
    Java深入学习30:CAS中的ABA问题以及解决方案
    Java深入学习29:线程等待和唤醒的两个方案
    Redis学习05:Springboot集成Redis集群cluster
    项目总结66:Springboot项目继承kafka集群
    项目总结65:内存溢出OOM问题处理
    异常处理009:Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持
    项目总结64:分别使用Redisson和Zookeeper分布式锁模拟模拟抢红包业务
    项目总结63:使用Spring AOP和BindingResult实现对接口的请求数据校验,并用@ExceptionHandler返回校验结果
    Java深入学习04:深入理解HashMap
  • 原文地址:https://www.cnblogs.com/shaozheng/p/11890369.html
Copyright © 2020-2023  润新知