面试题
1 django的请求周期?
浏览器请求wsgi(浏览器服务网关接口),请求进来到wsgi,wsgi把请求交给中间件,中间件过来然后经过路由系统,路由系统后经过视图,视图函数通过orm去数据库请求数据,拿去模板,用数据渲染模板,把渲染后的字符串返回给中间件,中间件返回给wsgi,wsgi返回给浏览器
wsgi协议的模块 wsgiref 同时只能处理一个请求,uwsgi 请求效率更高
wsgi是web服务器网关接口,是一套web协议, uwsgi,wsgiref,werkzreg,wsgiref是实现wsgi标准的模块,本质是socket写的服务端。
django 请求流程示意图
2 django里面有socket吗?
没有,django依赖的wsgi的socket.
3 你们公司如果遇到需要紧急修复的bug,怎么解决?
在master分支创建一个debug分支,在debug分支上进行修复,修复完毕后在合并到master并删除debug分支,再次切换到dev分支,进行开发.
4 你们是否做代码review?
在创建一个review的分支,代码合并到一个分支,由组长或者租内资深的人做代码的review。
5 git rebase的作用?
git pull origin dev 等价于:git fetch origin dev; git merge origin/dev 约等于 git fetch origin dev; git rebase origin/dev
在公司下班忘记push代码的时候,回家后在家里开发好代码push到github后,在公司再次pull代码的时候回产生分叉,为了保持代码的整洁,不分叉。
6 什么是ORM?
对象关系映射,省去我们反复地编写sql语句,orm中创建一些对应关系,如 类-表,字段-列 对象-行 ORM帮助开发者通过操作类和对象,ORM将其转换成对应的sql语句再去执行,从数据库中去拿结果。更方便。
7 ORM和原生SQL的区别?
ORM最终的执行是转换为原生的SQL 去执行。原生sql 执行效率高。orm的开发效率高。orm的兼容性要好。
8 列举你常用的django的组件?
Form组件,Cookie和Session,用户认证的组件,分页组件,CSRF组件,模板引擎。
9 django是一个什么样的框架?
大而全,且组件丰富的框架。
10 dom和jquery怎么转换?
dom-jquery let v=doucment.getElementByid('a'); $(v)
jquery-dom $('#aa')[0]
10 list1=[11,33,4,2,11,4,9,2] 去重后保持原来的顺序
1 list1=[11,33,4,2,11,4,9,2] 2 #去重 3 ret1=list(set(list1)) 4 # 5 ret2=sorted(ret1,key=list1.index) 6 print(ret2)
11 按照年龄顺序排序
1 list3=[ 2 {'name':'sakula','age':12}, 3 {'name':'wang','age':10}, 4 {'name':'ying','age':'20'} 5 ] 6 ret3=sorted(list3,key=lambda x:x['age'])
12 为什么要做前后端分离?
职责划分明确,后端写python相关,前段写css,js相关。
前后端分离的项目,接口只用写一次,ios,Android,微信小程序都可以对接。
13 谈谈你对restful规范的理解?
1 使用https代替http 2 在url中体现自己写的是API 3 在url中体现版本 4 名词(面向资源编程) 5 行为 method:get(获取),post(新建),put(更新),patch(局部更新),delete(删除) 6 条件 ?page=1&gender=2 条件传参 7 状态码 8 错误信息 {'code':10001} 9 返回结果 10 hyper link
14 django rest framework 框架的作用?
帮助开发者快速开发出遵循restful规范的API
15 django rest framework框架有哪些组件(10各组件)?
权限,
认证,
节流,
分页,
解析器,
序列化,(最重要的)
路由,
视图
渲染器
版本
16 简述http协议?
- 基于socket - 数据格式: "GET /index?name=123&age=19 http1.1\r\nhost:www.luffyciti.com\r\ncontent-type:application/json...\r\n\r\n" "POST /index http1.1\r\nhost:www.luffyciti.com\r\ncontent-type:application/json...\r\n\r\n{name:'alex',age:18}" "POST /index http1.1\r\nhost:www.luffyciti.com\r\ncontent-type:application/enform.....\r\n\r\nname=alex&age=18&xx=19" - 无状态短链接 一次请求一次响应之后断开连接