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、你独立进行过项目上线吗?

前端,DJ的更多相关文章

  1. 工具武装的前端开发工程师 Mac 软件清单

    Awesome Mac  这个仓库主要是收集非常好用的Mac应用程序.软件以及工具,主要面向开发者和设计师.有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章<工具武装的前端开发工程 ...

  2. 前端SEO优化

    结构优化 1.扁平化结构,目录层次越少越好

  3. web前端的环境配置

    1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页 ...

  4. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  5. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  6. 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

    记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...

  7. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

  8. Fis3的前端工程化之路[三大特性篇之声明依赖]

    Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...

  9. Fis3的前端工程化之路[三大特性篇之内容嵌入]

    Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...

随机推荐

  1. unity资源机制(转)

    原文地址:https://www.jianshu.com/p/ca5cb9d910c0作者:重装机霸 2.资源概述 Unity必须通过导入将所支持的资源序列化,生成AssetComponents后,才 ...

  2. 用cp命令拷贝文件,源目录后带不带斜杠的区别

    当我还是Linux超级傻白的时候,需要拷贝一个很大的数据集,然后再拷贝源文件夹的后面跟了一个前倾斜杠,然后就发现居然拷贝的是整个文件夹里的东西,而不是文件夹本身.事儿倒是不大,我重新建一个文件夹,把这 ...

  3. 修改Linux桌面高分屏下QT程序界面的缩放

    问题 Linux下的高分屏在Gnome.KDE中有缩放因子一说,但是对QT程序(常用如 WPS.网易云音乐等)无效,这里只是简记修改QT程序的缩放方法 解决 su #切换root用户 cp /etc/ ...

  4. Python的设计哲学--zen of Python

               Python的设计哲学--zen of Python Beautiful is better than ugly. 优美胜于丑陋 Explicit is better than ...

  5. tkmybatis VS mybatisplus

    本文是简单对比了以下官网上的内容 文章目录 TkMybatis Vs MybatisPlus 1.基础CRUD BaseMapper 2.代码生成器 3. 全局主键 Sequence主键 4. 热加载 ...

  6. 使用XSSFWorkbook 读取excel

    工作中用到 使用XSSFWorkbook 读取excel 具体代码如下, private (List<(string columnName, string colomnDescription)& ...

  7. JS 对象属性名排序

    问题,对象属性名排序,如: var data = { A:[], D:[], B:{} } 调整为=> var data = { A:[], B:[], D:{} } 方法一: for,in,把 ...

  8. 一次U9身份验证http数据对接

    一般情况下传输和回传HTTP协议就搞定了,但这次不同,有身份验证,网上的资料相对较少,怎么办呢?.NET没有不代表JAVA没有,网上搜JAVA身份验证HTTP协议, 果然是有的,跟着代码改成相应的.N ...

  9. 03 .NET CORE 2.2 使用OCELOT -- Docker中的Consul

    部署consul-docker镜像 先搜索consul的docker镜像 docker search consul 然后选择了第一个,也就是官方镜像 下载镜像 docker pull consul 然 ...

  10. sonarqube+sonar runner分析C#代码

    最近研究一个代码覆盖率和代码分析工具.遇到一些比较坑的问题,现在分享给大家. 1.Sonar介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量.通过插件机制,Sonar 可 ...