前端,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、你独立进行过项目上线吗?
前端,DJ的更多相关文章
- 工具武装的前端开发工程师 Mac 软件清单
Awesome Mac 这个仓库主要是收集非常好用的Mac应用程序.软件以及工具,主要面向开发者和设计师.有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章<工具武装的前端开发工程 ...
- 前端SEO优化
结构优化 1.扁平化结构,目录层次越少越好
- web前端的环境配置
1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页 ...
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧
记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
- Fis3的前端工程化之路[三大特性篇之声明依赖]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- Fis3的前端工程化之路[三大特性篇之内容嵌入]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
随机推荐
- HttpRuntime.Cache 与 HttpContext.Current.Cache
1.HttpRuntime.Cache是应用程序级别的, 2.而HttpContext.Current.Cache是针对当前WEB上下文定义的. 3.这二个都是调用的同一个对象,不同的是:HttpRu ...
- 4-5 Scrapy知识补充
FormRequest FormRequest类是专门用来处理HTML表单的,同时对隐藏的表单处理也很方便.适合用来完成登录操作. 类原型:class scrapy.http.FormRequest( ...
- Java学习:反射机制简介
反射机制是什么 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信息以及动态调用对象的方法的功能称为ja ...
- 11、VUE混合
1.混合的概念(mixture) 混合是以一种灵活的方式,为组件提供代码复用功能.(类似于封装) 混合对象可以包含任意的组件选项.当组件使用了混合对象时,混合对象的所有选项将被“混入”组件自己的选项中 ...
- Windows 10 更新补丁后Visual Studio 2017 运行项目出现错误
问题: 今天更新了Windows 10(版本 1709)推送最新补丁后,打开Visual Studio 2017运行Web项目,都出现“指定的参数超出有效值的范围 参数名:site”,如下图: 解决方 ...
- ASP.NET Core MVC 中两种路由的简单配置
1.全局约定路由 这种方式配置优先级比较低,如果控制器或者方法上标记了特性路由那么优先走特性路由. 当建立好一个mvc项目里,路由都是默认配置好的. 如果建立的是空项目那么需要手动配置: 1.需要在C ...
- edrawmax使用技巧备忘
由于自己经常需要画图示意,在对比研究了市面上的画图软件后,最终选择了亿图图示,一来是该软件貌似简单强大,有好多现成可用的功能,二来支持国产,并且亿图团队感觉还是不错的一直在用心打磨产品,当然要支持的! ...
- uni-app采坑记录
1. uni-app采坑记录 1.1. 前言 这里记录下uni-app实践中踩的坑 1.2. 坑点 1.2.1. 触发事件@longTap和@longpress 这两个都表示长按触发事件,那么这两个有 ...
- 基于wince系统开发的 SQLServe Mobile数据库应用
SQLServe Mobile数据库以前的版本是SQLServe CE,现在最新的是3.5的版本,最近用vs2008做了一个小程序,是对SQLServe Mobile数据库读写数据. 注:SQLSer ...
- Python Django Vue 项目创建
环境安装忽略,可参考前面个篇幅介绍 1.创建项目 打开pycharm 终端,输入如下,创建项目 # 进入pycharm 项目目录下 cd pyWeb django-admin startproject ...