cookie和session的原理
Cookie:用户请求浏览器的时候如果通过用户名密码的验证则将用户信息以明文键值对形式保存到cookie中,下次再次请求的时候,浏览器会自动带上cookie中的用户信息,进而获取到此用户信息。
Session:用户请求浏览器的时候如果通过用户名密码的验证则将用户信息加密之后保存在服务器,仅返回此用户信息对应的session_id给客户端,客户端会将session_id保存到客户端,下次请求的时候浏览器会自动从cookie中提交此session_id,进而获取到此用户信息。
使用模板的意义,至少三条?
①、视图函数只负责业务逻辑和数据的获取。
②、模板负责数据的展示
③、代码结构清晰,耦合度低
过滤器的作用及使用场景?
作用:过滤器的本质就是函数,可以起到在模板当中格式化数据的目的。
使用场景:对数据进行格式化,对用户进行统一验证,编码转换,对响应内容进行压缩等。
宏的理解,至少三条?
①、相当于可以批量生成HTML标签的函数
②、避免了重复书写HTML标签带来的代码冗余。
③、可以单独提取常用标签到单独文件,提高代码复用性。
web应用程序处理流程?
①、接收并解析http请求
②、处理本次http请求,完成业务逻辑处理。
③、请求数据并组装页面配合css,js进行美化和交互处理,最终返回给浏览器。
路由的作用及使用
①、设置请求方式
②、将访问请求绑定到视图函数上
③、传递参数,指定参数类型
使用框架的意义
①、提高开发效率
②、减少耦合度
③、前后端分离
④、提高代码复用率
⑤、减少重用
python常用的框架
①、flask:微框架
②、django:大而全框架
③、tornado:高性能框架
无状态保持
①、对于每次HTTP请求都是独立存在的,两次请求之间没有任何信息共享。
解决方案:cookie技术:数据存储在客户端,节省服务器空间,但是不安全。session技术:数据存储在服务器端。
继承和包含,至少三条
①、继承一般用在全站共享的导航,菜单等。
②、包含一般用在临时需要包含一个小的代码块的情况下,类似于小挂件。
③、两种方式都能有效提高代码的复用性。
ORM的优缺?
①、只需要面向对象编程,不需要面向数据库编程。
②、对数据库的操作转化成了对类的属性和方法的操作。不用在书写复杂的sql语句。
③、实现了数据模型的解耦,屏蔽了不同数据库操作上的差异。
④、在一定程度上会稍微影响性能。
flask的虚拟环境安装
①、虚拟环境安装:pip install virtualenv
②、进入项目安装虚拟目录:virtualenv venv
③、激活虚拟环境:activate
④、离开虚拟环境:deactivate
上下文管理器
上下文管理器相当于一个容器,保存了 Flask 程序运行过程中的一些信息。
包括:请求上下文和应用上下文
请求上下文:request、session,一般用来保存了客户端和服务器交互的数据
应用上下文:current_app、g变量,一般保存的一些配置信息。
flask数据库迁移语句
①、初始化迁移环境:python manager.py db init
②、生成迁移版本:python manager.py db migrate
③、提交到数据库:python manager.py db upgrade
Flask上下文管理机制
每次有请求过来的时候,flask会先创建当前线程或者进程需要处理的两个重要上下文对象,把它们保存到隔离的栈里面,这样视图函数进行处理的时候就能直接从栈上获取这些信息。