M1-Flask-Day4
今日内容概要:
1.git使用
2.redis基本操作
3.celery应用
4.在flask中使用celery
5.saltstack的基本使用
基础回顾:
1.关于FLASK
-基本使用 路由 视图 - cbv,fbv 模板 session 闪现 蓝图(目录结构划分) 特殊的装饰器@app.before_request 信号 a.flask和django 的区别? 1.flask轻量级,短小精悍,可扩展性强 2.django内置非常多的组件,大而全,ORM,FORM,Model_Form,中间件,Admin b.flask的生命周期? 请求进来之后 1.将请求相关数据封装到RequestContext对象中 2.将应用相关的数据封装到AppContext对象中 3.将两个对象放到一个小房子里 4.将小房子封装到Local对象里 执行before_request函数 执行视图函数 执行after_request函数 执行save_session函数 将Local里的两个对象删除 c.什么是MVC,MTV? MTV : model template view MVC : model view controller d.flask的精华上下文管理 - 首先要了解threading.local,对线程之间进行隔离 - flask的自定义的本地线程 支持的粒度更小,支持协程 - 请求进来时候,设置值: LocalStark -> Local(ctx和app_ctx对象) - 视图函数,调用值, LocalProxy --> 偏函数 --> Local(ctx和app_ctx对象) f.SqlAlchemy和sql的区别? 1.ORM是关系对象映射,类对应数据库表,对象对应数据库行,之后再执行类和对象时ORM帮助我们转换成SQL语句并执行 2.pymysql直接执行sql语句 ORM:执行效率差,开发效率高 pymysql:执行效率高,开发效率低 Flask-SqlAlchemy组件: 将SqlAlchemy和Flask组合到一起 原生sql最好使用数据库连接池 DBUtils Sqlalchemy的不用orm websocket 目标:让浏览器上的数据实时更新 http协议: - 轮询 - 长轮询 websocket协议 - WebSocket websocket协议: - 默认连接不断开 全双工模式 - 握手 通过魔法字符串加密 - 数据解密 playload 后7位,125,126,127 mask_key 剩下进行位运算 框架中使用: -flask :gevent-websockt -tornado: 内置 - django: channel