前端+web

Python面试重点(web篇)

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

第一部分 必答题

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

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

    控制台、导航条、登录页、组件、
  2. 什么是响应式布局?

    响应式布局就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本
    优点:
     1. 面对不同分辨率设备灵活性高
     2. 能够快捷解决多设备显示适应问题
    缺点:
     1. 不能完全兼容所有浏览器,代码累赘,会出现隐藏无用的元素,加载时间加长
     2.一定程度上改变了网站原有的布局结构,会出现用户混淆的情况
  3. 请通过jQuery发送ajax请求。

    <script>
      $("#ajaxTest").click(function () {
        $.ajax({
          url: "/ajax_test/",
          type: "POST",
          data: {username: "Q1mi", password: 123456},
          success: function (data) {
            alert(data)
          }
        })
      })
    </script>
  4. JavaScript与this相关的面试题(4分)

    name = '老男孩';
    
    info = {
     name:'alex',
     age:123,
     func:function(){
         console.log(this.name);
     }
    }
    
    info.func() 
    # none
    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. 什么是跨域?如何解决?

    1. 在settings.py中注释一行
     # 'django.middleware.csrf.CsrfViewMiddleware',    // 注释掉这一行,可以进行post请求
     2.在form表单中加上{csrf_tokrn}
     3.在中间件中写相关代码
  6. 简述你对Http协议的理解?

     http是超文本传输协议,也即是将传输的内容规定为一种格式,是请求和应答的标准,有8种请求方式,有请求头,请求体(get无请求头)
  7. 简述你对Https协议的理解?

    https就是http + TLS/SSL证书认证
  8. 列举常见的http请求头及作用?

    请求方式
    host
    user_Agent
  9. 列举常见的http请求方法及作用?

    get:请求指定的页面信息,并返回实体主体
    post:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改
    head:向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
    options:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
    put:向指定资源位置上传其最新内容
    delete:请求服务器删除Request-URL所标识的资源
    trace:回显服务器收到的请求,主要用于测试或诊断
    connect:
  10. 列举常见的http响应状态码。

    状态码:1xx -- 只是接收数据、而数据处理和返回数据未完成
    
    2xx -- 接收数据、返回数据、数据处理都已完成
    
    3xx -- 重定向
    
    4xx -- 请求错误  --  403 请求权限不够  404 not found
    
    5xx  -- 服务器的错误
  11. http中connections:keep-alive的请求头的作用?

  12. django请求生命周期?

    附图在最下方
  13. 什么是wsgi?

    wsgi是一种通信协议,WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来
  14. 什么是MVC ?什么是MTV?

    MVC:
        1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。
        2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。
        3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。
    MTV:
         Model(模型):负责业务对象与数据库的对象(ORM)
         Template(模版):负责如何把页面展示给用户
         View(视图):负责业务逻辑,并在适当的时候调用Model和Template
    
  15. django中间件作用以及应用场景?

    作用:是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在处理请求的特定的时间去执行这些方法。
    应用场景:登录,注册
  16. django中FBV和CBV有什么区别?

  17. django orm中如何批量创建数据?

    # 建一个空列表,盛放obj对象
    lst_obj=[]
    # 用for循环控制添加信息条数
    for i in range(100):
    # 创建图书对象,不懂可以看看添加数据的两种方法,其中一种是先创建对象
    book=Book(title="book_%s"%i,price=i*i)
    # 创建好的对象放在一个列表
    book_list.append(book)
    # 创建表记录
    Book.objects.bulk_create(book_list)
  18. django 如何执行原生SQL?

    from django.db import connection, connections
    # cursor = connection.cursor()
    cursor = connections['db2'].cursor()
    cursor.execute("SELECT * from app01_student ", )
    row = cursor.fetchall()
  19. django的orm如何查询id不等于5的数据。

    model.book.objects.exclude(id=5).all()
  20. cookie和session的区别?

    保存状态信息
    区别:
    1、存储位置不同
    cookie的数据信息存放在客户端浏览器上。
    session的数据信息存放在服务器上。
    
    2、存储容量不同
    单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。
    对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
    
    3、存储方式不同
    cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
    session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
    
    4、隐私策略不同
    cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。
    session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
    
    5、有效期上不同
    开发可以通过设置cookie的属性,达到使cookie长期有效的效果。
    session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
    
    6、服务器压力不同
    cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。
    session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
    
    7、浏览器支持不同
    假如客户端浏览器不支持cookie:
    cookie是需要客户端浏览器支持的,假如客户端禁用了cookie,或者不支持cookie,则会话跟踪会失效。关于WAP上的应用,常规的cookie就派不上用场了。
    运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。
    假如客户端支持cookie
    cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效。
    session只能在本窗口以及子窗口内有效。
    
    8、跨域支持上不同
    cookie支持跨域名访问。
    session不支持跨域名访问。
  21. django的orm中on_delete的作用?

    级联删除
  22. 描述crm有哪些功能?

    客户管理(客户身份的动态转化、批量操作、客户信息展示、客户跟进记录)
    缴费记录
    班级管理
    权限管理
    登录注册
  23. crm中什么是公户?什么是私户?为什么要做这个区分?

    公户:所有销售都可以发展的客户
    私户:指定销售的客户对象
    目的:
    1.为公司员工做一个工作记录,考察员工的工作进度及工作情况
    2.方便以后对客户进行跟进联系,积累客户信息
    3.当公户成为私户后,不同的角色和不同的人员进入系统后,只会看到自己的客户信息,防止别的人员篡改信息等
  24. 请列举出CRM系统中的表。

    user/班级表/缴费记录表/客户表/跟进记录表/
  25. 对数据库的数据做展示时,不同字段类型有不同的展示方法,分别是什么?

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

  27. CRM中有哪些技术点?

    django+orm+session+bootstrap+ajax+jquery+javascipt
  28. 为什么不用现成的crm而是自己去开发?

    每个公司内部的体系不同,业务不同,使用现成的crm具有一定的局限性
  29. 请简述实现权限控制的流程。

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

    手动创建3张(user、角色、权限)user和角色是多对多的关系,角色和权限是一对多的关系
    
    字段:
    user 
        id name sex age 入职时间 
    角色:
        id 角色名称
    权限:
        id 权限分类
  31. 为什么要把权限信息放到session中?权限信息放到session有什么优缺点?

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

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

第二部分 补充题

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

  6. django生命周期图

    1583118874179

猜你喜欢

转载自www.cnblogs.com/801-sm726/p/12394769.html