Python面试重点(web篇)

Python面试重点(web篇)

注意:只有必答题部分计算分值,补充题不计算分值。

第一部分 必答题

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

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

    导航栏,表单,轮播图,下拉菜单

     

  2. 什么是响应式布局?

    响应式布局就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本.
    优点:灵活性强,能解决多设备显示问题
    缺点:不兼容所有浏览器,一定程度改变布局结构

     

  3. 请通过jQuery发送ajax请求。

    $.ajax({
      url: 地址,
      type: 请求方式,
      data : {},
      success:function (res){  
          # 逻辑
          $(this)
      }
       
    })

     

  4. JavaScript与this相关的面试题(4分)

    name = '老男孩';

    info = {
    name:'alex',
    age:123,
    func:function(){
    console.log(this.name);
    }
    }

    info.func()
    name = '老男孩';

    info = {
    name:'alex',
    age:123,
    func:function(){
    console.log(this.name);
           function f1(){
               console.log(this.name);
          }
           f1()
    }
    }

    info.func()
    name = '老男孩';

    info = {
    name:'alex',
    age:123,
    func:function(){
    console.log(this.name);
          (function(){
               console.log(this.name);
          })()
    }
    }

    info.func()
    name = '老男孩';

    info = {
    name:'alex',
    age:123,
    func:function(){
    console.log(this.name);
           var xxx = this;
          (function(){
               console.log(xxx.name);
          })()
    }
    }

    info.func()
  5. 什么是跨域?如何解决?

    当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

     

  6. 简述你对Http协议的理解?

    规定请求和响应的格式

     

  7. 简述你对Https协议的理解?

    超文本传输协议,利用SSL/TLS来加密数据包,由HTTP进行通信的一种协议。

     

  8. 列举常见的http请求头及作用?

    GET:get请求
    POST:post请求
    (PUT DELETE HEAD OPTIONS TRACE CONNECT)

     

  9. 列举常见的https请求方法及作用?

    GET:get请求
    POST:post请求
    (PUT DELETE HEAD OPTIONS TRACE CONNECT)

     

  10. 列举常见的http响应状态码。

    1xx  请求已接受,进一步进行处理
    2xx 请求已经接受,也正常处理
    3xx 重定向
    4xx 请求错误 403 404
    5xx 服务器的错误

     

  11. http中connections:keep-alive的请求头的作用?

    HTTP中keep-alive头部的作用是为保持TCP连接,节省操作系统资源,也能够保持HTTP请求的高效性。

     

  12. django请求生命周期?

    1.wsgi,请求封装交给web框架
    2.中间件,对请求进行校验或在请求对象中添加其他相关数据
    3.路由匹配,根据浏览器发送的不同url去匹配不同的视图函数
    4.视图函数,在视图函数中进行业务逻辑的处理.
    5.中间件,对响应的数据进行处理
    6.wsgi将响应的内容发送给浏览器

     

  13. 什么是wsgi?

    Web Server Gateway Interface,web服务器网关接口,它定义了web服务器如何与python应用程序进行交互

     

  14. 什么是MVC ?什么是MTV?

    MVC  
    M: model   模型 数据库交互
    V:view 视图   展示给用户看的 HTML
      C :controller   控制器 业务逻辑 传递指令
    MTV:
    M: model 模型   ORM
    T: template 模板  
    V: view   视图 业务逻辑

     

  15. django中间件作用以及应用场景?

    中间件: 中间件就是一个类,在全局范围内处理django的请求和响应
    中间件介于request与response处理之间的一道处理过程,想对比较轻量级,在全局上改变django的输入与输出

     

  16. django中FBV和CBV有什么区别?

    FBV:在视图函数里面用函数处理请求
    CBV:在视图函数里面使用类处理请求
  17. django orm中如何批量创建数据?

    使用django.db.models.query.QuerySet.bulk_create()批量创建对象,减少SQL查询次数

     

  18. django 如何执行原生SQL?

    使用extra方法,依赖model模型
    使用raw方法,依赖model多用于查询
    执行自定义SQL

     

  19. django的orm如何查询id不等于5的数据。

    子表原名.objects.get(id!=5).母表表名小写.母表字段名

     

  20. cookie和session的区别?

    cookie:保存在浏览器上一组组键值对
    特点:1.由服务器让浏览器进行设置
    2.保存在浏览器本地的
    3.下次访问时自动携带对应的cookie
    session:保存在服务器上一组组键值对,必须依赖cookie

     

  21. django的orm中on_delete的作用?

    级联删除

     

  22. 描述crm有哪些功能?

    客户关系管理系统
    联系人信息、客户管理、留言信息、时间管理、事务管理、日程管理、产品管理、订单管理、系统相关权限管理、以及管理员模块

     

  23. crm中什么是公户?什么是私户?为什么要做这个区分?

    没有绑定销售的客户称为公户,绑定销售的客户称为私户.
    销售人员各自维护自己的客户(私户),不可以查看或者跟进其他销售的客户,避免产生纠纷

     

  24. 请列举出CRM系统中的表。

    用户管理表 报名表,跟进记录表,客户信息表,缴费记录表,财务表

     

  25. 对数据库的数据做展示时,不同字段类型有不同的展示方法,分别是什么?

    普通字段 -- 对象.字段名
    choice字段 -- 对象.get_字段名_display
    外键 -- 对象.外键字段.属性
    多对多 -- 对象.自定义方法

     

  26. 请详细说说你们公司销售是如何使用CRM的。

    销售可以通过个人渠道获取客户信息,自己录入系统中,或者主管把已经录入系统的客户分给销售.销售需要在特定时间内对客户进行跟进记录,将跟进记录输入系统内,以便跟进不同客户的不同情况.当客户确定报名后,要让客户填写报名表,当销售收到客户的缴费,填写缴费记录表,并将费用转交财务

     

  27. CRM中有哪些技术点?

    auth模块  认证功能
    modelfrom 对表进行增删改查
    分页 数据分页展示
    事务 + 行级锁 私户公户管理
    QueryDict 保留搜索条件

     

  28. 为什么不用现成的crm而是自己去开发?

    crm系统开源化,利用现成的crm容易造成数据危险

     

  29. 请简述实现权限控制的流程。

    权限表 一个url代表一个权限,可以访问某个url,代表拥有某个权限,当用户成功登录时,根据用户的角色查询所拥有的权限,将权限放在session中,登录时自动携带,请求中间件会对权限进行校验,根据访问的url和session进行匹配.
    页面中可以点击的按钮也是权限,判断该按钮所代表的权限是否在用户的权限内,如果有就显示,没有就不显示

     

  30. 列举权限有多少张表?表中都有那些字段?

    菜单表  id  name
    权限表 id title url name menu_id parent_id
    角色表 id name
    用户表   id username passwward
    角色和权限关系表 id 角色表id 权限表id
    用户和角色关系表 id 用户表id   角色表id

     

  31. 为什么要把权限信息放到session中?权限信息放到session有什么优缺点?

    将权限和菜单的字典存放在session中是为了给不同用户存放不同的权限和菜单, 并且session可以存放在Redis中, 读取速度快.

     

  32. 权限控制到按钮级别是如何实现的?

    自定义filter

     

  33. 如何实现把权限粒度控制到数据行?

     

 

第二部分 补充题

  1. 详细描述是jsonp实现机制?

     

  2. django的orm如何通过数据自动化生成models类?

    1.修改settings.py的DATABASES
    DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.mysql',
          'NAME': 'hoteldb',
          'USER': 'root',
          'PASSWORD': 'root',
          'HOST': 'localhost',
          'PORT': '3306',
      }
    }

    2.

     

  3. django中如何设置缓存?

    安装redis

     

  4. django中信号的作用?

     

  5. django中如何设置读写分离

     

  6.  

posted @ 2020-03-02 12:06  潇洒君  阅读(198)  评论(0)    收藏  举报