1,session和cookie的区别
session保存在服务器,cookie保存在客户端。
2,,解释装饰器和闭包,并分别说明各自应用场景。
闭包:函数和运行环境的整体。
装饰器:在函数执行过程中动态增加功能。
闭包应用:可以定义装饰器。
装饰器应用:给函数添加日志等。
3,有没有用过Redis?有没有用过mongodb?简要介绍一下。
没有用过,会去了解。
4,flask中,防止跨站请求伪造的方法,以及实现原理。
在form表单中添加隐藏字段csrf_token,请求发起后,将cookie中的csrf_token和表单数据中取出的值做对比,值一样,视为正常请求
5,flask的werkzeug拓展
一个WSGI(Web Server Gateway Interface)库,用来定义web服务接口规范。相当于一个工具包,可以用它来搭建web服务器。
6,哈希算法
又称散列算法或hash算法。 一种压缩映射,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出。
7,列表和元组,以及元组的应用场景。
列表:有序集合,可变。
元组:有序集合,不可变。应用:函数返回值
8,mysql数据库的高级用法
知道有事物,索引,但没有具体应用过。
9,flask中,上下文的应用场景。
程序上下文:(current_app,g)多应用嵌套时,用于确定当前处理哪个应用。
请求上下文:(request,session)利用线程隔离,将其在一次请求中设置为全局变量。
10,flask中数据库迁移的三个步骤及目的
python manage.py db init 创建迁移仓库
python XXXX.py db migrate -m "提示信息" 创建迁移脚本
python XXXX.py db upgrade 更新至数据库
11,flask蓝图实现机制
1:在蓝图对象上调用route装饰器注册路由,在内部的延迟操作记录列表defered_functions中添加了一个项。
2:执行应用对象的register_blueprint()方法时,应用对象从defered_functions列表中取出每一项,即调用应用对象的add_url_rule()方法,最终修改程序实例的路由映射列表
12,介绍MVC和MVT,阐述区别。
MVC:模型(M),控制器(C),视图(V)
MVT:模型(M),模板(T)视图(V)
共同点:1,都将业务处理和显示分开进行。2,model都是数据存取。
不同点:在显示阶段,mvc中view只负责显示具体内容,而MVT中,由view将数据填充到template中再显示。
13,介绍http协议。
超文本传输协议。应用层协议。
请求由三部分构成:请求行、消息报头、请求正文
请求方法有:GET,POST,HEAD,PUT,DELETE等。
响应也由三部分构成:状态行、消息报头、响应正文
响应状态码的五种可能取值:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
14,介绍冒泡排序
从头开始,遍历所有元素。比较两个相邻的元素,将值大的元素交换至右端,始终将较小的值放在左边。