web面试重点.

Python面试重点(web篇)

第一部分 必答题

注意:除第四题4分以外,其他题均每题3分。

  1. 写出常用的bootstrap的样式。

    1. form-control(input,select), table(table table-striped table-hover,table-border )
    2. class=‘row‘ col-md-3 col-md-offset-3
    3. btn btn-primary btn-success btn-danger...
  2. 什么是响应式布局?(针对不同的设备屏幕宽度,来显示不同效果)
    1. cnblogs.com/clschao/articles/10093308.html 参考博客
  3. 请通过jQuery发送ajax请求。
    var formdata = new FormData()formdata.append(‘file_obj‘,$(‘[type=file]‘)[0].files[0])$.ajax({        url:‘/home/‘,        type:‘get‘,        // data:{username:‘alexdsb‘},        data:formdata,        processData:false,        contentType:false,        success:function (res) {            alert(res);        }
    
    ?    });    
  4. JavaScript与this相关的面试题(4分)
    name = ‘老男孩‘;?info = {    name:‘alex‘,    age:123,    func:function(){        console.log(this.name);    }}?info.func() 
    name = ‘老男孩‘; // 3.this.name 实际上就是window.name,所以打印了老男孩?info = {    name:‘alex‘,    age:123,    func:function(){        console.log(this.name);        function f1(){            console.log(this.name);  //2.所以这里this指向了window对象        }        f1()  #1.实际上是window.f1(),    }}?info.func() 
    name = ‘老男孩‘;?info = {    name:‘alex‘,    age:123,    func:function(){        console.log(this.name);        (function(){            console.log(this.name);        })() // 自执行函数中这个this也是指向了window对象    }}?info.func() 
    name = ‘老男孩‘;?info = {    name:‘alex‘,    age:123,    func:function(){        console.log(this.name);         var xxx = this;  // this---info对象        (function(){            console.log(xxx.name);  // info.name        })()    }}?info.func() ?
  5. 什么是跨域?如何解决?
    1. 协议\ip\端口三个都相同才是同源,跨域就是两个项目中前面这三项内容有一个不同,就是非同源,那么他们之间互相访问就是跨域
    2. 响应对象加上对应的响应头就可以了,比如说对于一个简单请求,被请求的网站,回复响应对象的时候加上obj["Access-Control-Allow-Origin"] = "http://127.0.0.1:8000" 就可以了
  6. 简述你对Http协议的理解?
  7. 简述你对Https协议的理解?
  8. 列举常见的http请求头及作用?
  9. 列举常见的http请求方法及作用?
  10. 列举常见的http响应状态码。
  11. http中connections:keep-alive的请求头的作用?
  12. django请求生命周期?
    1. https://img2018.cnblogs.com/blog/988061/201903/988061-20190307152249812-1922952163.png
  13. 什么是wsgi?
    1. web服务器网关接口 ,应用程序与服务器程序(socket)之间交互数据的格式要求,django内部使用的wsigref来完成这个接口,实际我们部署项目使用的是uwsgi,因为wsgiref不支持并发,uwsgi支持并发.
  14. 什么是MVC ?什么是MTV?
    1. MVC:model-view-control(url) MTV:model-template-views+url控制器 框架模式
  15. django中间件作用以及应用场景?
    1. 对全局请求或者响应做出一些相关处理 (登录认证\权限认证\限制访问批量\ip过滤)
  16. django中FBV和CBV有什么区别?
    1. function based view class based view
    2. fbv--url: url("^index/‘,views.函数名称‘) cbv: url("^index/‘,views.类名.as_view()‘)
    3. cbv里面针对不同的请求方法写对应逻辑时的不同
      1. fbv: request.method来进行请求方法的判断
      2. cbv:get请求想处理就定义get方法
        1. cbv里面: dispatch--进行请求方法分发到不同的类方法上的处理,原理:反射 request_method_list = [‘get‘,‘post‘....], getattr(self,‘get‘)
  17. django orm中如何批量创建数据?
    1. 对象 = models.Book(title=‘jinpingmei‘)
    2. models.Book.objects.bulk_create([model对象1,对象2])
  18. django 如何执行原生SQL?
    1. models.Book.objects.raw(‘select * from app01_book;‘)
    2. 借用到pymysql,
      1. from django.db import connection

        connection ---- conn = pymysql(host=127.0.0.1,port=3306,........)

        cursor = connection .cursors()

        cursor.excute(‘select * from xx;‘)

        cursor.fetchall()

  19. django的orm如何查询id不等于5的数据。
    1. models.Book.objects.exclude(id=5)
    2. models.Book.objects.all().filter().exclude(id=5)
  20. cookie和session的区别?
    1. cookie:保存在浏览器端的数据
    2. session是将数据保存在了服务端,但是借助了cookie,session_id给了cookie,用户带着个session_id就能获取到自己的数据,更安全一些
    3. cookie有个数限制: 300个
    4. 一个服务器最多在客户端浏览器上保存20个Cookie;
    5. Cookie大小上限为4KB;
  21. django的orm中on_delete的作用?
    1. on_delete级联删除,on_delete=CASCADE, on_delete=SET_NULL 关联数据置空
  22. 描述crm有哪些功能?
    1. 注册登录
    2. 批量操作
    3. 模糊搜索
    4. 公私户转换(事务和锁)
    5. 分页(自定义分页组件)
    6. 各业务数据的增删改查(orm操作,modelform,form)
    7. 批量创建记录和修改记录(modelformset_factory)
    8. 权限组件开发
      1. 数据库表设计(6张表,4个model类)
      2. 权限对应url路径,基于rbac,也就是基于角色进行了权限控制
      3. 权限分配
        1. 权限数据批量生成(modelformset_factory,和formset_factory,),首先获取项目中各个应用的url路径,然后和数据库中保存的url权限数据进行比较(set集合),项目中比数据库中多的,就是我们要添加的权限数据,少的就是剔除的一些功能,
        2. 给用户分角色,给角色分权限
        3. 权限注入(数据库查询改用户的所有权限数据,然后讲这些数据注入到session中,session可以配置缓存,各个位置存取数据都很方便,而且数据是加密的)
        4. 权限校验(中间件,权限认证白名单,通过正则来校验该用户当前访问的路径有没有在他的所有权限路径中)
        5. 动态菜单(二级菜单)(做了菜单数据结构,注入到session中,通过inclusion_tag渲染每个用户不同的菜单标签)
        6. 路径导航-面包屑(定义了一个面包屑列表,将用户访问的路径所对应的二级菜单信息和一级菜单信息,加到了这个列表中,并将列表封装到了request对象里面,在前端进行了模板渲染,循环生成了路径导航)
        7. 精确到按钮级别的权限

          class Book():

          authors = models.ManyToMany(‘author‘)

          def get_all_author_name(self):

          name= ‘‘

          for i in self.authors.all()

          name+= i.name

          return name

  23. crm中什么是公户?什么是私户?为什么要做这个区分?
    1. 没有分配给任何一个销售的客户,都称为公户,已经分配了的就是某个销售的私户
    2. 销售容易产生矛盾,提高销售的服务质量,提高转化率,并且可以进行销售的业绩统计
  24. 请列举出CRM系统中的表。
    1. 用户表,客户表,跟进记录表,报名表,课程表,学习记录表,权限表....
  25. 对数据库的数据做展示时,不同字段类型有不同的展示方法,分别是什么?
    1. models.CharField(choices=[(‘1‘,‘男‘),]) -- get字段名display 对象.属性 对象.属性.另外一张表的属性
    2. 对象.属性.all() ---- models类中定义一个方法(self.) 对象.方法获取到自己想要的多对多表的数据信息
  26. 请详细说说你们公司销售是如何使用CRM的。
    1. 登录
    2. 查看公户信息,选取自己想聊的客户,拉到自己的私户中
    3. 然后对客户进行一对一深入交流
    4. 将每次交流体验记录到跟进记录中
    5. 也负责帮助客户写报名信息
    6. 然后缴费成功之后,进行售后服务
  27. CRM中有哪些技术点?
    1. 技术栈: django\modelformset_factory\jquery\bootstrap\ajax\html\css\mysql\orm\nginx\uwsig
  28. 为什么不用现成的crm而是自己去开发?
    1. 公司业务定制性很强,现成的crm不能够满足需求
  29. 请简述实现权限控制的流程。
  30. 列举权限有多少张表?表中都有那些字段?
  31. 为什么要把权限信息放到session中?权限信息放到session有什么优点?
  32. 权限控制到按钮级别是如何实现的?
  33. 如何实现把权限粒度控制到数据行? 添加一条件表,记录着数据表名,查询条件(id>2)

第二部分 补充题

  1. 详细描述是jsonp实现机制?
  2. django的orm如何通过数据自动化生成models类?
  3. django中如何设置缓存?
  4. django中信号的作用?
  5. django中如何设置读写分离

原文地址:https://www.cnblogs.com/Tian-Cai-1996/p/12394747.html

时间: 2024-11-09 08:45:15

web面试重点.的相关文章

Python面试重点(web篇)

Python面试重点(web篇) 注意:只有必答题部分计算分值,补充题不计算分值. 第一部分 必答题 注意:除第四题4分以外,其他题均每题3分. 写出常用的bootstrap的样式. Bootstrap表格样式.栅格系统.带边框的表格.状态类表格(带背景色的表格).内联表单.禁用状态和只读状态 什么是响应式布局? 请通过jQuery发送ajax请求. $.ajax({ url:'/test/', # 提交的地址 type:"post", # 请求方式 data:{ # 提交的数据 na

大数据技术之_03_Hadoop学习_02_入门_Hadoop运行模式+【本地运行模式+伪分布式运行模式+完全分布式运行模式(开发重点)】+Hadoop编译源码(面试重点)+常见错误及解决方案

第4章 Hadoop运行模式4.1 本地运行模式4.1.1 官方Grep案例4.1.2 官方WordCount案例4.2 伪分布式运行模式4.2.1 启动HDFS并运行MapReduce程序4.2.2 启动YARN并运行MapReduce程序4.2.3 配置历史服务器4.2.4 配置日志的聚集4.2.5 配置文件说明4.3 完全分布式运行模式(开发重点)4.3.1 虚拟机准备4.3.2 编写集群分发脚本xsync4.3.3 集群配置4.3.4 集群单点启动4.3.5 SSH无密登录配置4.3.6

程序员Web面试之前端框架等知识

基于前面2篇博客: 程序员Web面试之jQuery 程序员Web面试之JSON 您已经可以顺利进入Web开发的大门. 但是要动手干,还需要了解一些已有的前端框架.UI套件,即要站在巨人肩膀上而不是从轮子开始造汽车. 下面就Web开发用到的前端框架.UI套件.UI插件一一列举(排名不分先后): jQuery UI jQuery UI以 jQuery 为基础的开源 JavaScript 网页用户界面代码库.包含底层用户交互.动画.特效和可更换主题的可视控件.包含了许多维持状态的小部件(Widget)

C C++ OC iOS面试重点问题(一)

C C++ OC iOS面试重点问题(一) 1.字符串常量需要加\0 2.逻辑运算 位操作(经典:实现两个数的交换) 3.关键字 4.引用和指针的区别和联系 5.如何引用一个已经定义过的全局变量?  答:可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变变量,假定你将那个变量写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错. 5.extern关键字的用法? 答:ext

程序员Web面试之JSON

JSON是什么? JSON(JavaScript对象表示法), 是在网络通信下,常用的一种数据表达格式,它有助于我们于一个自描述的,独立的和轻的方式呈现并交换数据.这些数据可以易于和转换为JavaScript对象. JSON格式的最大优点: 它可以被很容易得被转换为一个javascript对象.例如,下面的代码片段中看到的,我们有一个JSON格式的数据里面有"姓名","街道","年龄"和"手机". <script typ

程序员Web面试之JQuery

又到了一年一度的毕业季了,青春散场,却等待下一场开幕. 在求职大军中,IT行业的程序员.码农是工科类大学生的热门选择之一, 尤其是近几年Web的如火如荼,更是吸引了成千上万的程序员投身其中追求自己的梦想, 这篇文章以Web面试官的经历整理而成,希望能对你有所帮助. jQuery是什么? jQuery是javascript编写一个可重用的JavaScript库. 不使用JQuery设置UI文本的JavaScript代码如下: document.getElementById("txt1")

大数据技术之_04_Hadoop学习_01_HDFS_HDFS概述+HDFS的Shell操作(开发重点)+HDFS客户端操作(开发重点)+HDFS的数据流(面试重点)+NameNode和SecondaryNameNode(面试开发重点)

第1章 HDFS概述1.1 HDFS产出背景及定义1.2 HDFS优缺点1.3 HDFS组成架构1.4 HDFS文件块大小(面试重点)第2章 HDFS的Shell操作(开发重点)第3章 HDFS客户端操作(开发重点)3.1 HDFS客户端环境准备3.2 HDFS的API操作3.2.1 HDFS文件上传(测试参数优先级)3.2.2 HDFS文件下载3.2.3 HDFS文件夹删除3.2.4 HDFS文件名更改3.2.5 HDFS文件详情查看3.2.6 HDFS文件和文件夹判断3.3 HDFS的I/O

大数据技术之_05_Hadoop学习_02_MapReduce_MapReduce框架原理+InputFormat数据输入+MapReduce工作流程(面试重点)+Shuffle机制(面试重点)

第3章 MapReduce框架原理3.1 InputFormat数据输入3.1.1 切片与MapTask并行度决定机制3.1.2 Job提交流程源码和切片源码详解3.1.3 FileInputFormat切片机制3.1.4 CombineTextInputFormat切片机制3.1.5 CombineTextInputFormat案例实操3.1.6 FileInputFormat实现类3.1.7 KeyValueTextInputFormat使用案例3.1.8 NLineInputFormat使

Python面试重点(基础篇)

Python面试重点(基础篇) 第一部分 必答题 简述列举了解的编程语言及语言间的区别? pythonjavacc++c#gophp----------------------------------------------------------------编程语言分为解释型和编译型: 解释型语言:   python 在编写代码的时候不需要编译,在执行的时候,想要用专用的解释器对代码进行编译,全部编译后,才能执行代码 编译型语言:   c c++   go 每写一行代码,解释器就会编译一行,然