前端,DJ

Vue模块

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

"""
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会真的隐藏标签不渲染
"""

二、简单聊一聊Vue组件化开发html

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

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

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

drf模块

一、什么是web接口,restful接口规范python

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

二、drf中有哪些经常使用模块mysql

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

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

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

四、怎么样自定义序列化类git

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

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

"""
drf的接口请求,须要先进行认证组件,校验获得登陆用户,而后在进行权限组件,完成用户权限校验,最后进行频率组件,完成频率限制

认证组件源码所干的事,就是从请求头中拿到认证token,若是没有,就不进行认证校验,直接去进行权限校验,若是有,校验提供就是合法用户,保存在request.user中,若是没有,直接抛异常返回到前台,就是非法用户

权限组件源码所干的事,须要看哪一个权限类,但都是挺简单的,IsAuthenticated就是校验是否有request.user,且是否能完成auth认证,IsAuthenticatedOrReadOnly就是先判断请求方式,get这类就不限制,post这些请求才须要进行校验,规则和IsAuthenticated同样

频率组件源码不少,主要是根据用户特有的一些请求信息,如登陆用户的主键,来记录用户访问的几回,访问后就会在django缓存cache中记录,在规定时间内,超次就会限制
"""

六、如何自定义认证类ajax

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

七、如何自定义权限类redis

"""
自定义频率类,继承SimpleRateThrottle,重写get_cache_key,明确scope字符串

在settings.py配置文件中的DEFAULT_THROTTLE_RATES配置scope字符串对应的限制条件,如:3/min(一分钟3次)

在get_cache_key中返回做为限制标识的字符串
"""

八、简述drf中的视图类

"""
APIView是基础的视图类,完成基础的cbv的请求响应,比django的View类多了一堆类属性,好比authentication_classes就能够配置该视图类的认证器

GenericAPIView继承APIView的,在APIView基础上,能够经过设置queryset、serializer_class两个类属性更好的配合model类完成资源的请求

mixins中提供了一些视图类的工具方法,帮咱们封装了基础的get、post这些请求动做

viewsets视图集,重写了as_view方法,能够将get请求再也不固定映射给get方法,能够映射给自定义方法
"""

路飞模块

一、简述git经常使用命令

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

二、简述先后台跨域问题

"""
跨域本质是后台响应头出现了问题,作出的响应,前台没法解析

若是先后台的请求协议、所在服务器(ip)、所属应用(端口),有一个不一致,就属于跨域
"""

三、django如何解决跨域

"""
能够用django-cors-headers模块来解决跨域,具体作法能够归纳以下

一、安装django-cors-headers模块

二、在settings.py中配置
# 注册app
INSTALLED_APPS = [
    ...
    'corsheaders'
]
# 添加中间件
MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware'
]

# 容许跨域源
CORS_ORIGIN_ALLOW_ALL = True
"""

四、用太短信认证吗?简述一下

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

五、用过celery框架吗?

"""
celery为异步任务框架,启动celery,会启动一个工做对象worker,会去任务队列中获取任务,而后执行,执行结果放到结果仓库中,因此任务队列和结果仓库均可以用效率高的数据库完成存储,我采用的是redis数据库。

我用celery异步任务框架主要是来完成接口缓存的更新,已经支付成功后的短信推送
"""

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

"""
首先我会对那些常常访问的,且数据通常不作更新的接口进行缓存,创建好缓存的key,采用redis数据库,工做原理就是先走缓存,缓存没有才走mysql数据库,同时创建缓存

通常创建缓存的接口大多为主页固定展现的接口
"""

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

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

八、讲述一下支付流程

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

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

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

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

```python

相关文章
相关标签/搜索