zoukankan      html  css  js  c++  java
  • Django部分面试题目

    web 部分
    Python面试重点(web篇)
    第一部分 必答题
    注意:除第四题4分以外,其他题均每题3分。
    1.写出常用的bootstrap的样式。

    h1
    2.什么是响应式布局? 就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。

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

    $.ajax({
    type:"GET",
    url:"",
    dataType:"json",
    success:function(data){
    },
    error:function(jqXHR){
    }
    });
    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()
    alex
    老男孩
    alex
    xxx
    5.什么是跨域?如何解决?
    修改对应的api实现函数views.py,允许其他域通过ajax请求数据。

    6.简述你对Http协议的理解?
    http是超文本传输协议,是一个应用层协议,由请求和相应构成,是一个标准的客户端服务器模型;信息是明文传输;http的连接很简单,是无状态的;端口80

    7.简述你对Https协议的理解?
    https则是具有安全性的ssl加密传输协议
    HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
    https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
    端口443

    8.列举常见的http请求头及作用?
    User-agent:向服务器发送浏览器的版本、系统、应用程序的信息。
    Cookie:告诉服务器关于 Session 的信息,存储让服务器辨识用户身份的信息
    Accept:向服务器申明客户端(浏览器)可以接受的媒体类型(MIME)的资源

    9.列举常见的http请求方法及作用?
    GET 请求指定的页面信息,并返回实体主体。
    HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    PUT 从客户端向服务器传送的数据取代指定的文档的内容。
    DELETE 请求服务器删除指定的页面。
    CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    OPTIONS 允许客户端查看服务器的性能。
    TRACE 回显服务器收到的请求,主要用于测试或诊断

    10.列举常见的http响应状态码。
    1xx:指示信息–表示请求已接收,继续处理 2xx:成功–表示请求已被成功接收、理解、接受 3xx:重定向–要完成请求必须进行更进一步的操作 4xx:客户端错误–请求有语法错误或请求无法实现 5xx:服务器端错误–服务器未能实现合法的请求 常见状态代码、状态描述、说明: 200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的 URL 500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

    11.http中connections:keep-alive的请求头的作用?
    当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。

    12.django请求生命周期?
    当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中.
    url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配, 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了.
    视图函数根据客户端的请求查询相应的数据.返回给Django,然后Django把客户端想要的数据做为一个字符串返回给客户端.
    客户端浏览器接收到返回的数据,经过渲染后显示给用户.

    13.什么是wsgi?
    WSGI是Python在处理HTTP请求时,规定的一种处理方式。如一个HTTP Request过来了,那么就有一个相应的处理函数来进行处理和返回结果。WSGI就是规定这个处理函数的参数长啥样的,它的返回结果是长啥样的?至于该处理函数的名子和处理逻辑是啥样的,那无所谓。简单而言,WSGI就是规定了处理函数的输入和输出格式。

    14.什么是MVC ?什么是MTV?
    MVC(Model View Controller 模型-视图-控制器)
    Model: 代表数据存取层,
    View 代表的是系统中选择显示什么和怎么显示的部分,
    Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。
    MTV(Model Templates View 模型-模板-视图)
    Models:数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效,是一个抽象层,用来构建和操作你的web应用中的数据,模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。
    模板(templates):即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。模板层提供了设计友好的语法来展示信息给用户。使用模板方法可以动态地生成HTML。模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。
    视图(views):业务逻辑层,该层包含存取模型及调取恰当模板的相关逻辑。用于封装负责处理用户请求及返回响应的逻辑。视图可以看作是前端与数据库的中间人,他会将前端想要的数据从数据库中读出来给前端。他也会将用户要想保存的数据写到数据库。

    15.django中间件作用以及应用场景?
    process_request : 请求进来时,权限认证
    process_view : 路由匹配之后,能够得到视图函数
    process_exception : 异常时执行
    process_template_responseprocess : 模板渲染时执行
    process_response : 请求有响应时执行

    16.django中FBV和CBV有什么区别?
    FBV和CBV本质是一样的,基于函数的视图叫做FBV,基于类的视图叫做CBV 在python中使用CBV的优点:
    提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
    可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性

    17.django orm中如何批量创建数据?
    objs=[models.Book(title="图书{}".format(i+15)) for i in range(100)]
    models.Book.objects.bulk_create(objs)

    18.django 如何执行原生SQL?
    使用execute执行自定义的SQL,直接执行SQL语句(类似于pymysql的用法)
    使用extra方法 :queryset.extra(select={"key": "原生的SQL语句"})

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

    20.cookie和session的区别?
    cookie: cookie是保存在浏览器端的键值对,可以用来做用户认证
    session: 将用户的会话信息保存在服务端,key值是随机产生的字符串,value值是session的内容 依赖于cookie将每个用户的随机字符串保存到用户浏览器上
    Django中session默认保存在数据库中:django_session表
    flask,session默认将加密的数据写在用户的cookie中

    21.django的orm中on_delete的作用?
    级联删除 在2.0版本后,表与表之间关联必须要写,不然会报错

    22.描述crm有哪些功能?
    管理客户, 管理用户 ,
    23.crm中什么是公户?什么是私户?为什么要做这个区分?
    系统里大家都能能看到的
    个人客户
    防止抢客户

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

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

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

    27.CRM中有哪些技术点?

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

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

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

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

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

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

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

  • 相关阅读:
    Python全栈 MySQL 数据库 (表字段增、删、改、查、函数)
    Python全栈 MySQL 数据库 (简述 、安装、基本命令)
    Python全栈工程师(异常(高级)、运算符重载)
    Python全栈工程师(多继承、函数重写)
    【洛谷P3796】(模板)AC自动机(加强版)
    【洛谷P3808】(模板)AC自动机(简单版)
    【洛谷P3919】(模板)可持久化数组(可持久化线段树/平衡树)
    【洛谷P3834】(模板)可持久化线段树 1(主席树)
    【洛谷P3369】(模板)普通平衡树
    [USACO12FEB]牛券Cow Coupons
  • 原文地址:https://www.cnblogs.com/sjf981012-/p/12394645.html
Copyright © 2011-2022 走看看