Python试题(web篇)

第一部分 必答题

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

    栅格系统<body>    <div class="container">        <div class="row">            <div class="col-md-1>1</div>            <div class="col-md-2>2</div>            <div class="col-md-3>3</div>            <div class="col-md-4>4</div>            <div class="col-md-2>2</div>        </div>    </div></body>?表格?<table class="table">  ...</table>?表单?<form class="form-horizontal">  <div class="form-group">    <label for="inputEmail3" class="col-sm-2 control-label">Email</label>    <div class="col-sm-10">      <input type="email" class="form-control" id="inputEmail3" placeholder="Email">    </div>  </div>  <div class="form-group">    <label for="inputPassword3" class="col-sm-2 control-label">Password</label>    <div class="col-sm-10">      <input type="password" class="form-control" id="inputPassword3" placeholder="Password">    </div>  </div>  <div class="form-group">    <div class="col-sm-offset-2 col-sm-10">      <div class="checkbox">        <label>          <input type="checkbox"> Remember me        </label>      </div>    </div>  </div>  <div class="form-group">    <div class="col-sm-offset-2 col-sm-10">      <button type="submit" class="btn btn-default">Sign in</button>    </div>  </div></form>?按钮<!-- Standard button --><button type="button" class="btn btn-default">(默认样式)Default</button>?<!-- Provides extra visual weight and identifies the primary action in a set of buttons --><button type="button" class="btn btn-primary">(首选项)Primary</button>?<!-- Indicates a successful or positive action --><button type="button" class="btn btn-success">(成功)Success</button>?<!-- Contextual button for informational alert messages --><button type="button" class="btn btn-info">(一般信息)Info</button>?<!-- Indicates caution should be taken with this action --><button type="button" class="btn btn-warning">(警告)Warning</button>?<!-- Indicates a dangerous or potentially negative action --><button type="button" class="btn btn-danger">(危险)Danger</button>?<!-- Deemphasize a button by making it look like a link while maintaining button behavior --><button type="button" class="btn btn-link">(链接)Link</button>
  2. 什么是响应式布局?
    一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本
  3. 请通过jQuery发送ajax请求。
    $.ajax({            ‘url‘:‘/calc/‘,            ‘type‘:‘post‘,            ‘data‘:{                ‘k1‘:$(‘[name="i1"]‘).val(),                ‘k2‘:$(‘[name="i2"]‘).val(),            },            success:function (ret) {               $(‘[name="i3"]‘).val(ret)            }        })
  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() 老男孩 Alex
    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
  5. 什么是跨域?如何解决?
    当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域?使用代理
  6. 简述你对Http协议的理解?
    http协议是一种应用层超文本传输协议  默认端口 80
    无状态: 每次请求都是独立的, 两个请求之间没有联系, 但是会引入 Cookie 和 Session 机制来关联请求
    无连接:服务端收到客户端请求后, 响应完成并收到客户端的应答之后, 立即断开连接
    
    HTTP连接7步骤
    1.建立tcp/ip连接 (3次握手)
    2.客户端向服务端发送HTTP请求
    3.客户端发送请求头信息,请求内容,最后会发送一行空白,表示客户端发送完毕
    4.服务器做出应答
    5.服务器向客户端发送应答头信息
    6.服务端发送应答头信息,应答内容,最后会发送一行空白,表示服务端发送完毕
    7.服务端关闭tcp连接(4次挥手)
  7. 简述你对Https协议的理解?
    默认端口号是 443
    
    客户端请求 https 连接, 服务器收到请求后会把证书信息(包含公钥和签名) 返回给客户端
    客户端会校验这个证书签名的有效性从而获取到公钥
    客户端随机生成会话密钥(对称加密), 然后利用证书里面的公钥将会话密钥加密, 连同加密后的内容传送给服务端
    服务器利用私钥解密出会话密钥, 然后解密出内容
    服务端利用会话密钥通信
    
  8. 列举常见的http请求头及作用?
    Accept: 浏览器可以接受的 MIME 类型
    Accept-Encoding:浏览器支持的编码类型
    Accept-Language: 浏览器支持的语言
    Content-Length : 请求消息的正文长度
    Content-Type : 客户端接受服务器返回的文件类型
    User-Agent : 请求的用户信息, 浏览器类型
    Host : 给出接受请求的服务器主机名和端口号
    
  9. 列举常见的http请求方法及作用?
    GET 、POST 、HEAD、PUT、DELETE、OPTIONS
    
    GET: 可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
    HEAD:HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。
    PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。
    DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
    POST:向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这个完成。
    OPTIONS:这个方法很有趣,但极少使用。它用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。
  10. 列举常见的http响应状态码。
    1xx : 临时响应, 需要请求者继续执行操作
    2xx: 成功处理了请求的状态码
    3xx : 如果要完成请求, 需要进一步操作, 重定向
    4xx : 请求出错
    5xx: 服务器内部错误
  11. http中connections:keep-alive的请求头的作用?
    因为HTTP是无状态的,connections记录了个人信息,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的TCP连接。但是Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。
  12. django请求生命周期?
    客户端发送请求   经过中间件找到url
    根据请求URL在路由系统查询相应的视图函数
    视图函数根据调用数据库获取相应数据
    视图函数根据模板渲染生成页面
    返回客户端
  13. 什么是wsgi?
    WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口。具体的来说,WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。WSGI一开始是在PEP-0333中定义的,最新版本是在Python的PEP-3333定义的。
    
  14. 什么是MVC ?什么是MTV?
     mvc
     1.模型层:  model     负责业务对象和数据库的对象(ORM)的映射
    
     2.视图层       views  负责与用户的交互(书写逻辑)
    
     3.控制器  Controller   完成用户对模型层和视图层调用,来完成用户的请求
    mtv
    
     1.模型层:  model     负责业务对象与数据库的对象(ORM)的映射
    
      2.模板层  Template   负责如何把页面展示给用户(html)
    
     3.视图层:  View    负责业务逻辑,并在适当的时候调用Model和Template
  15. django中间件作用以及应用场景?
    作用:在request和response之间的一道处理过程,用于全局范围改变django输入和输出
    应用场景:比如博客园你需要登录才能发表博客,在你每次访问博客园或刷新的时候中间件判断你有没有登录,避免了每次刷新都要登录一遍 
  16. django中FBV和CBV有什么区别?
    • FBV 再视图里使用函数处理请求
    • CBV 再视图里使用类处理方法
  17. django orm中如何批量创建数据?
  18. django 如何执行原生SQL?
  19. django的orm如何查询id不等于5的数据。
  20. cookie和session的区别?
    • cookie 保存在浏览器缓存中,关闭浏览器就失效
    • session 保存在数据库中,只要不删除,在设定的有效期内一直有效
  21. django的orm中on_delete的作用?
    • 级联
    • models.CASCADE 级联删除 当关联表中的数据删除时,该外键也删除
    • models.SET_NULL 置空 当关联表中的数据删除时,该外键置空,当然,你的这个外键字段得允许为空,null=True
    • models.SET_DEFAULT 设置默认值 删除的时候,外键字段设置为默认值,所以定义外键的时候注意加上一个默认值。
  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中如何设置读写分离

原文地址:https://www.cnblogs.com/zlx960303/p/12394852.html

时间: 2024-10-09 23:58:54

Python试题(web篇)的相关文章

Python面试重点(web篇)

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

第一篇:Python高性能Web框架Tornado原理剖析

本系列博文计划: 1.剖析基于Python的Web框架Tornado的源码 2.为Python开发一个完善的MVC框架 首先将带着大家一起来剖析基于python编写的Web框架 tornado ,本着易读易懂的目标来写这一系列,寄希让小白也能zeng明白其中的道理,与其说剖析还不如说是白话,因为本系列都会用通俗的语言去描述Web框架中的各个知识点. 一个脚本引发的一场"血案".... 运行脚本并在浏览器上访问http://127.0.0.1:8080 #!/usr/bin/env py

第二篇:Python高性能Web框架tornado源码剖析之待请求阶段

上篇<第一篇:Python高性能Web框架Tornado原理剖析>用上帝视角多整个框架做了一个概述,同时也看清了web框架的的本质,下面我们从tornado程序的起始来分析其源码. 概述 上图是tornado程序启动以及接收到客户端请求后的整个过程,对于整个过程可以分为两大部分: 启动程序阶段,又称为待请求阶段(上图1.2所有系列和3.0) 接收并处理客户端请求阶段(上图3系列) 简而言之: 1.在启动程序阶段,第一步,获取配置文件然后生成url映射(即:一个url对应一个XXRequestH

问道python之基础篇【一】 认识python

问道python之基础篇[一] 认识python 1.python的简介 1.1.什么是python? Python是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python语法简洁清晰,特色之一是强制用空白符作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够用其他语言制作的各种模块(尤其是C++)很轻松地联结在一起. 1.2.python的特点 简单,易学,免费.开源,高层语言,移植性,

前端面试题 -- JS篇

前端面试题 -- JS篇 类型 1.js中有哪些数据类型,并解释清楚原始数据类型和引用数据类型 js中共有null,undefined, string,number,boolean,object六种数据类型. 原始数据类型: null,undefined, string,number,boolean 引用数据类型:object 两者的区别:1)值存储方式不同: 原始数据类型:将变量名和值都存储在栈内存中 引用数据类型:将变量名存储在栈内存中,将值存储在堆内存中,并在栈内存中存储值的地址,该地址指

Flask之旅《Flask Web开发:基于Python的Web应用开发实战》学习笔记

<Flask Web开发:基于Python的Web应用开发实战> 点击上方的"目录"快速到达哦! 虽然简单的网站(Flask+Python+SAE)已经上线,但只是入门.开发大型网站,系统地学习一遍还是有必要的. 1 虚拟环境 2016-6-8 书上介绍了 virtualenv,每个venv都会拷贝一份packages到项目 /venv目录. virtualenv venv venv\Scripts\activate.bat (venv) $ pip freeze >

用 Python 理解 Web 并发模型

用 Python 理解 Web 并发模型 http://www.jianshu.com/users/1b1fde012122/latest_articles 来源:MountainKing 链接:http://www.jianshu.com/p/80feb3bf5c70# 前言 虽然异步是我们急需掌握的高阶技术,但是不积跬步无以至千里,同步技术的学习是不能省略的.今天这篇文章主要用Python来介绍Web并发模型,直观地展现同步技术的缺陷以及异步好在哪里. 最简单的并发 import socke

《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)

目录 前言 第8章 用户认证 第9章 用户角色 第10章 用户资料 第11章 博客文章 第12章 关注者 第13章 用户评论 第14章 应用编程接口   前言 第1章-第7章学习实践记录请参见:<Flask Web开发——基于Python的Web应用开发实践>一字一句上机实践(上) 本文记录自己学习<Flask Web开发——基于Python的Web应用开发实践>的第8章-第14章内容.相比于刚开始学习第1-7章内容来说,本部分内容实战性更强,而且在书本上遇到的问题也相对较少,如果

《Flask Web开发 基于Python的Web应用开发实战》简评

指路牌 <Flask Web开发><Flask Web开发 基于Python的Web应用开发实战><Flask Web开发>是否适合新手入门Python Web开发? 正文 <Flask Web开发 基于Python的Web应用开发实战>,O'Reilly"动物书系列"的"狗书",应该是很多Flask初学者被推荐使用的入门书,但是这本书真的适合初学者吗? Python的Web框架非常多,例如Django.Flask.T

Python之Web框架介绍

所有的语言Web框架本质其实就是起一个socket服务端,监听一个端口,然后运行起来 Web框架包含两部分,一部分是socket,另外一部分是业务的逻辑处理,根据请求的不同做不同的处理 Python的Web框架分成了两类, 即包含socket也包含业务逻辑处理的(tornado) 不包含socket(框架本身通过第三方模块实现socket)只包含业务逻辑处理(django,Flask) WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口.具